记录消息总线 API?
Documenting a message bus API?
过去几天我一直在寻找某种方法来记录我正在处理的微服务架构的 API。首先,我将简要介绍一下该项目:
- 用 C#、.NET 4.6.1 编写
- 使用带有 x-pub/x-sub 代理的 NetMQ 作为 "message broker"
- 所有通信都是序列化为 JSON
的纯 C# 对象
- 一些客户端在浏览器中 JavaScript,其他客户端是 .NET 应用程序
简而言之,我想知道其他人如何记录发布到他们的消息总线的模型。我见过很多帮助记录 REST 调用的项目(如 Swagger),但我们没有使用 REST。我们的应用程序几乎完全基于事件,使用 JSON.
进行发布-订阅消息传递
我的第一个想法是使用 JSON-Schema 记录 JSON 并使用工具将其转换为格式良好的 API 文档。这可能没问题,但令我困扰的是,似乎没有任何工具可以将模式生成作为构建过程的一部分进行自动化。如果我们的模型与 API 文档不同,我希望它是一个构建错误。更好的是,如果有某种方法可以在构建过程中自动生成基本文档,则文档可以保持同步。
你们是怎么做到的?缺乏专门针对支持 REST 的消息总线架构的文档工具让我质疑我们使用基于消息队列的消息架构的决定。 :)
...there don't seem to be any tools to automate the schema
generation...
同意工具在地面上很薄。但是,有这个:https://github.com/NJsonSchema/NJsonSchema
How do you guys do it?
有趣的是,不到 10 分钟前我还在和一位同事进行这个确切的讨论 :p
如果模型偏离预定义的模式,我们需要构建(或验收测试)失败。
所以您可以在构建中使用 NJsonSchema 包从您的模型生成架构。然后你有一个比较步骤,将输出的模式与 API 文档模式进行比较。
相反,您可以从模式生成代码,然后将输出与构建输出中的模型进行比较。
...question our decision to use a messaging architecture based on
message queues..
坚持到底,朋友。
过去几天我一直在寻找某种方法来记录我正在处理的微服务架构的 API。首先,我将简要介绍一下该项目:
- 用 C#、.NET 4.6.1 编写
- 使用带有 x-pub/x-sub 代理的 NetMQ 作为 "message broker"
- 所有通信都是序列化为 JSON 的纯 C# 对象
- 一些客户端在浏览器中 JavaScript,其他客户端是 .NET 应用程序
简而言之,我想知道其他人如何记录发布到他们的消息总线的模型。我见过很多帮助记录 REST 调用的项目(如 Swagger),但我们没有使用 REST。我们的应用程序几乎完全基于事件,使用 JSON.
进行发布-订阅消息传递我的第一个想法是使用 JSON-Schema 记录 JSON 并使用工具将其转换为格式良好的 API 文档。这可能没问题,但令我困扰的是,似乎没有任何工具可以将模式生成作为构建过程的一部分进行自动化。如果我们的模型与 API 文档不同,我希望它是一个构建错误。更好的是,如果有某种方法可以在构建过程中自动生成基本文档,则文档可以保持同步。
你们是怎么做到的?缺乏专门针对支持 REST 的消息总线架构的文档工具让我质疑我们使用基于消息队列的消息架构的决定。 :)
...there don't seem to be any tools to automate the schema generation...
同意工具在地面上很薄。但是,有这个:https://github.com/NJsonSchema/NJsonSchema
How do you guys do it?
有趣的是,不到 10 分钟前我还在和一位同事进行这个确切的讨论 :p
如果模型偏离预定义的模式,我们需要构建(或验收测试)失败。
所以您可以在构建中使用 NJsonSchema 包从您的模型生成架构。然后你有一个比较步骤,将输出的模式与 API 文档模式进行比较。
相反,您可以从模式生成代码,然后将输出与构建输出中的模型进行比较。
...question our decision to use a messaging architecture based on message queues..
坚持到底,朋友。