gortex 跨仓库 API 契约自动发现指南:8 种契约类型的匹配实战
【免费下载链接】gortexHigh-performance code-intelligence engine for AI agents and IDE, supports 257 languages, multi repositories, based on graph, with access via CLI, MCP Server, and API. AI coding agents teammate - expose only needed information, cutting token usage up to 50x. 100% local. Discord: https://discord.gg/39MFHu3J5d项目地址https://gitcode.com/gh_mirrors/gor/gortex点击查看免费下载gortex是一款高性能的代码智能引擎code-intelligence engine它能把你的多个代码仓库解析成一张统一的代码图谱并自动发现跨仓库的 API 契约——从 HTTP 路由、gRPC 服务到 Kafka 消息主题共 8 种契约类型帮助你在不人工梳理的情况下看清谁提供服务、谁在调用。100% 本地运行支持 CLI、MCP Server 和 API 三种接入方式。为什么需要跨仓库契约发现在微服务架构里最常见的坑莫过于️孤儿契约Orphan服务端定义了一个接口但没有任何客户端调用或者客户端调用的接口根本不存在。✂️不匹配Mismatch消费方拼错了路径、方法名重构后两边命名漂移。盲区契约散落在几十甚至上百个仓库里没人说得清全局拓扑。gortex 在索引代码时自动检测契约contracts auto-detected把每个契约归一化成标准 ID如http::GET::/api/users/{id}然后在仓库之间做 provider / consumer 配对。整个过程无需你手写任何契约描述文件。官方对 8 种契约类型的完整定义见 docs/contracts.md核心提取与匹配逻辑位于 internal/contracts/ 模块。8 种契约类型一览gortex 支持的契约类型及其检测方式如下#契约类型检测来源Provider检测来源Consumer1HTTP 路由框架注解gin、Express、FastAPI、Spring 等HTTP 客户端调用fetch、http.Get 等2gRPCProto 服务定义客户端 stub 调用3GraphQLSchema 类型/字段定义Query / Mutation 字符串4消息主题Kafka、RabbitMQ、NATS、Redis 的发布调用对应的订阅调用5WebSocket事件emit()模式事件on()模式6环境变量Setenv/.env文件 / Terraform 变量os.Getenv/process.env7OpenAPISwagger / OpenAPI 规范文件关联到实际 HTTP 路由8Temporal 工作流Go/Java SDK 的 Activity、Workflow 注册ExecuteActivity/ExecuteWorkflow等调用源码中每个类型都有独立的提取器例如 HTTP 路由提取 internal/contracts/http.go、gRPC 提取 internal/contracts/grpc.go、消息主题提取 internal/contracts/topics.go。核心机制归一化 ID 边界匹配第一步归一化为标准 ID不同框架的路径写法千差万别。gortex 会把各种风格归一化成同一个标准形式保证跨仓库能对上号/users/:id、/users/int:id、/users/{id}→ 统一为/users/{id}消费方的完整 URLhttp://api.example.com/v1/users→ 去掉协议和域名只留路径JS 模板串${API_URL}/users/${id}→ 剥掉前缀$变量折叠为{id}这套归一化逻辑在 contract.go 中实现。关键点归一化后的 ID 按位置对齐而非按参数名对齐所以即使两边给路径参数起了不同的名字契约依然能配对成功。第二步工作区边界检查跨仓库配对的前提是两个仓库声明了相同的工作区。在各自仓库的.gortex.yaml中写上同一个workspace标识# 服务端仓库 workspace: tuck project: tuck # 客户端仓库 workspace: tuck project: tuck匹配器matcher会按(workspace, project, 契约ID, 角色)四元组分桶桶内做 provider / consumer 全配对。不同工作区之间的契约永远不会互相配对——哪怕 ID 完全相同也各自成为孤儿。这避免了多个团队定义的同名接口被错误地连在一起。规则详见 internal/contracts/README.md 和 docs/multi-repo.md。第三步RPC 族二次配对IDL 定义和生成 stub 的调用点经常长得不一样包名限定 vs 裸服务名、camelCase vs PascalCase。为此 gortex 在精确 ID 配对之后还有一轮RPC 族归一化配对gRPC Thrift tRPC按规范化的服务名/方法名把这类漂移的契约重新接上避免跨服务追踪在命名差异处中断。配对算法见 matcher.go。实战以 Kafka 消息契约为例子消息主题topic是最典型的跨仓库契约。gortex 内置了Kafka、RabbitMQ、NATS、Redis 四大消息中间件族的检测模式例如 Kafka 支持kafka.Message{Topic: name, ...}字面量segmentio/kafka-goProducerMessage{Topic: ...}saramaproducer.send({ topic: name })kafkajsproducer.produce(topic, ...)confluent-kafka-go / kafka-python契约 ID 编码为topic::broker::name所以 Kafka 的 topicfoo和 NATS 的 subjectfoo天然隔离绝不会被错误配对。两个值得注意的防误报设计动态主题名被抑制如果 topic 名是运行时变量nc.Publish(subject, payload)中subject不是字符串字面量gortex 不会猜测直接不产生契约——宁可漏配不可错配。跨中间件隔离broker 家族作为 ID 的一部分参与匹配。具体规则见 topics.go。三种方式查看与检查契约方式一CLI 一键检查索引完成后直接运行gortex track .契约会在索引阶段自动检测完毕track时即可看到全貌。方式二MCP 工具供 AI 编码助手使用gortex 通过 MCP Server 向 Claude Code、Cursor、Codex 等 AI 编码代理暴露contracts工具contracts—— 列出所有已检测到的契约contracts {action: check}—— 找出不匹配和孤儿契约工具处理逻辑位于 internal/mcp/tools_enhancements.go。这意味着你可以直接问 AI帮我检查一下哪些 HTTP 接口是孤儿代理就会调用 gortex 完成检查。方式三图谱可视化在 gortex 的 Graph explorer 中契约作为独立的Contract节点类型参与图谱渲染配合多仓库联邦Federated视图可以直观地看到跨仓库的 provider → consumer 连线以及 3D 星座视图下的仓库层级关系即文首截图所示。常见契约问题的排查思路拿到check结果后建议按以下顺序处理孤儿消费者Orphan Consumer客户端在调用一个不存在的接口——优先处理通常是接口已下线或路径拼写错误。孤儿提供者Orphan Provider定义了但没人调用的接口——可能是遗留代码可作为删除候选。配对上了但语义存疑检查两边参数名、请求/响应 Schema 是否一致gortex 会为契约携带Meta与置信度Confidence字段辅助判断。动态契约看不到主题名、路径由运行时拼接的契约不在检测范围内见上文防误报设计这类需要人工确认或改为字面量。总结gortex 的跨仓库 API 契约发现本质上做了三件事归一化消除框架写法差异、边界化workspace/project 防止误配、双向配对provider ↔ consumer 全量匹配 RPC 族二次接合。8 种契约类型覆盖了现代服务间通信的主流形态——HTTP、gRPC、GraphQL、消息队列、WebSocket、环境变量、OpenAPI 规范和 Temporal 工作流。只需在.gortex.yaml里声明相同的工作区剩下的全部自动完成全程 100% 本地运行。相关文档入口契约类型完整说明docs/contracts.md多仓库与工作区边界docs/multi-repo.md契约提取与匹配模块internal/contracts/MCP 工具与 CLI 参考docs/mcp.md、docs/cli.md赞分享【免费下载链接】gortexHigh-performance code-intelligence engine for AI agents and IDE, supports 257 languages, multi repositories, based on graph, with access via CLI, MCP Server, and API. AI coding agents teammate - expose only needed information, cutting token usage up to 50x. 100% local. Discord: https://discord.gg/39MFHu3J5d项目地址https://gitcode.com/gh_mirrors/gor/gortex点击查看免费下载相关推荐5分钟上手PowerToys文本提取器一个能从屏幕任意位置提取文字的OCR工具5分钟上手PowerToys文本提取器一个能从屏幕任意位置提取文字的OCR工具 PowerToys文本提取器是微软开源套件PowerToys中的一个模块它基桌面应用开发工具G-Helper完整入门指南免费单文件搞定华硕笔记本性能模式与风扇曲线G Helper完整入门指南免费单文件搞定华硕笔记本性能模式与风扇曲线 每天开机都要等预装控制软件转完加载圈切一次模式却要常驻一堆后台进程。G Helper桌面应用系统编程Repowise 工作区契约匹配全解析跨仓库 Provider/Consumer 链接如何命名、读取与匹配Repowise 工作区契约匹配全解析跨仓库 Provider/Consumer 链接如何命名、读取与匹配 Repowise 的 Workspace 模式会把创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考