4

在过去的几天里,我一直在寻找某种方法来记录我正在研究的微服务架构的 API。首先,我将简要介绍一下该项目:

  • 用 C#、.NET 4.6.1 编写
  • 使用带有 x-pub/x-sub 代理的 NetMQ 作为“消息代理”
  • 所有通信都是序列化为 JSON 的纯 C# 对象
  • 有些客户端是浏览器中的 JavaScript,有些是 .NET 应用程序

简而言之,我想知道其他人如何记录发布到他们的消息总线的模型。我见过很多帮助记录 REST 调用的项目(如 Swagger),但我们没有使用 REST。我们的应用程序几乎完全基于事件,使用 JSON 进行发布-订阅消息传递。

我的第一个想法是使用 JSON-Schema 记录 JSON,并使用工具将其转换为格式良好的 API 文档。这可能没问题,但令我困扰的是,似乎没有任何工具可以将模式生成自动化作为构建过程的一部分。如果我们的模型与 API 文档不同,我希望它是一个构建错误。更好的是,如果有某种方法可以在构建过程中自动生成基本文档,那么文档可以保持同步。

你们是怎么做到的?缺少特定于支持 REST 的消息总线架构的文档工具,这让我质疑我们使用基于消息队列的消息传递架构的决定。:)

4

1 回答 1

1

...似乎没有任何工具可以自动生成模式...

同意工具在地面上很薄。但是,有这个:https ://github.com/NJsonSchema/NJsonSchema

你们是怎么做到的?

有趣的是,我在不到 10 分钟前与一位同事进行了确切的讨论:p

如果模型偏离预定义的模式,我们需要构建(或验收测试)失败。

所以你可以在你的构建中有一个步骤,它使用 NJsonSchema 包从你的模型生成模式。然后你有一个比较步骤,它将输出的模式与 API 文档模式进行比较。

相反,您可以从架构生成代码,然后将输出与构建输出中的模型进行比较。

...质疑我们使用基于消息队列的消息传递架构的决定..

坚持到底,朋友。

于 2016-06-30T11:37:55.660 回答