【问题标题】:Documenting a message bus API? [closed]记录消息总线 API? [关闭]
【发布时间】:2016-11-01 12:59:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# json documentation microservices netmq


    【解决方案1】:

    ...似乎没有任何工具可以自动化架构 一代...

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

    你们是怎么做到的?

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

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

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

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

    ...质疑我们决定使用基于 消息队列..

    坚持到底,朋友。

    【讨论】:

    • 感谢您提供指向 NJsonSchema 的链接!这将非常有帮助。我开始研究基于 Roslyn 的代码解析器,它可以从我们的模型代码中解析出 cmets 并自动构建文档。我将此页面用作指南:github.com/dotnet/roslyn/wiki/… 我计划生成通过 mkdocs 以 readthedocs 格式运行的 Markdown。通过构建过程中的模式验证和自动文档生成,我认为这个解决方案可能会奏效。我很惊讶在这类事情上没有更多的工具!
    • @user1094821 - 很高兴你发现它有用。让我知道你的最终解决方案...
    猜你喜欢
    • 2010-12-29
    • 2011-12-18
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多