async API文档用于记录事件驱动系统(例如Kafka事件)中的事件。所有事件DTO都存储在一个地方。它支持YAML和JSON格式。
它包含有关渠道和组件的信息。频道和组件分别通过其消息和DTO模式定义。
{
"asyncapi": "2.6.0",
"info": {
"title": "Events docs",
"version": "1.0.0"
},
"channels": {
"topic_name": {
"publish": {
"message": {
"schemaFormat": "application/vnd.oai.openapi;version=3.0.0",
"payload": {
"type": "object",
"properties": {
"counter": {
"type": "number"
}
},
"required": [
"counter"
]
}
}
}
}
},
"components": {
"schemas": {
"EventDto": {
"type": "object",
"properties": {
"counter": {
"type": "number"
}
},
"required": [
"counter"
]
}
}
}
}
自动化
异步API文档可以通过以下多个步骤来自动化:
- 分别使用
ApiProperty
和ApiPropertyOptional
装饰器(来自@nestjs/swagger
包)定义DTO及其必需的和可选字段,分别为 - 从定义的DTOS生成OpenAPI文档
- 从生成的OpenAPI文档中解析和重用组件模式,以构建异步API文档的频道消息和组件模式
验证
使用AsyncAPI Studio验证书面规范。
预览
有多个选项
-
vscode扩展
asyncapi-preview
,打开命令调色板,然后运行Preview AsyncAPI
命令。
UI世代
- 安装
@asyncapi/cli
和对应的模板软件包(例如,@asyncapi/html-template
,@asyncapi/markdown-template
) - 更新软件包。
{
"scripts": {
// ...
"generate-docs:html": "asyncapi generate fromTemplate ./asyncapi/asyncapi.json @asyncapi/html-template --output ./docs/html",
"generate-docs:markdown": "asyncapi generate fromTemplate ./asyncapi/asyncapi.json @asyncapi/markdown-template --output ./docs/markdown"
}
}