【问题标题】:What are some methods to document contracts between microservices?有哪些方法可以记录微服务之间的合同?
【发布时间】:2018-12-30 08:01:50
【问题描述】:

在 HTTP 驱动的微服务架构中,每个服务可能有许多公共端点,这些端点将 JSON 返回到客户端或 API 网关中介。这些服务还可以接受具有某种形状的 JSON 主体的 POST,或某种形状的查询字符串等。

有哪些好的选择可以记录或以编程方式跟踪服务之间的这些“合同”?即,如果服务 A 的 /getThing 端点已被重构以返回不同的数据,是否有文档工具或方法有助于更新 API 网关以适应这种变化?

【问题讨论】:

    标签: rest microservices distributed api-design


    【解决方案1】:

    对于合同的编程管理,如果您使用 spring-cloud 堆栈,那么您必须查看spring-cloud-contract,通过它您可以轻松跟踪您的 Rest 端点的最新版本合同和此外,如果您的 api 端点发生任何更改,这将帮助您通过违反合同和围绕它构建的测试用例失败来通知您。

    例如,假设服务 A 的 /getThing 端点已被重构以返回不同的数据,那么所有调用此端点的服务将在您的项目的构建时失败。

    但是,这种方法不利于更新 API 网关以适应这种变化,因为您可能希望对每个新版本的端点执行不同的逻辑。

    您还可以使用这些端点合约创建 Rest Docs sn-ps。结帐Rest Docs snippets。您还可以使用swagger 来记录您的端点。

    对于 NodeJs 检查here

    【讨论】:

      猜你喜欢
      • 2017-12-16
      • 2020-02-10
      • 2020-11-06
      • 2013-05-06
      • 1970-01-01
      • 2018-01-18
      • 2015-10-12
      • 2011-09-25
      • 2015-08-05
      相关资源
      最近更新 更多