如何为 activemq 实例需要与之通信的消息格式提供文档?

How to provide a document for the message formats an activemq instance requires to communicate with?

我正在尝试使用 Camel 路由功能通过 ActiveMQ 提供一些服务。但我需要我的客户知道他们可以通过 ActiveMQ 发送什么样的消息。我正在考虑 Spring MVC rest API 的 swagger 文档之类的东西。是否有任何机制,或者我应该手动完成?

您要求的并不是消息传递的真正方式。 ActiveMQ是消息broker。经纪人支持的每个协议都可以在任何平台上使用基本上任何语言的客户端实现,并且每个这样的客户端实现都有自己的 API 文档。

ActiveMQ 确实提供了 JMS 客户端实现,这是 JMS 提供程序所期望的。您可以阅读 JMS 1.1 specification or peruse the JavaDoc 以便更好地理解 API。

除此之外,ActiveMQ 支持以下协议:

同样,这些协议中的每一个都有不同的客户端实现和它们自己的文档。

这些协议类似于 REST 用例中的 HTTP。它们本质上是一种传输机制。您必须指定消息格式才能在应用程序之间交换数据。这些消息格式将类似于您的 REST API.

感谢@Helen's comment I found out about AsyncAPI. It provides documentation and code generation tools for services provided over event-driven architectures. It is based on OpenAPI specifications like Swagger. As stated in AsyncAPI specifications V2.1.0:

The AsyncAPI Specification is a project used to describe and document message-driven APIs in a machine-readable format. It’s protocol-agnostic, so you can use it for APIs that work over any protocol (e.g., AMQP, MQTT, WebSockets, Kafka, STOMP, HTTP, Mercure, etc).

The AsyncAPI Specification defines a set of files required to describe such an API. These files can then be used to create utilities, such as documentation, integration and/or testing tools.

您只需创建一个 YAML 或 JSON 文件。他们提供了多个generators that generate codes and documents using your specification files. I used their HTML generators来生成我的文档。

另外,this 是一个很好的例子,说明如何基于 AsyncAPI 定义规范。