考虑一个由多个端点组成的应用程序,一些是同步的,另一些是异步的,遵循事件驱动架构,Kafka作为消息代理,与其他微服务通信。这些API的文档应该是什么标准?我们是否需要为异步创建单独的文档页面(使用AsyncAPI)和同步API(使用OpenAPI),或者有没有办法将两者合并合并到一个文档中?我在网上读到AsyncAPI是异步API的文档标准,和OpenAPI应该用于正常的同步Rest API,但是如果我们在一个应用程序中混合了不同类型的API,我们找不到任何相关的链接。我希望得到任何帮助/指导。
2条答案
按热度按时间sg3maiej1#
在我的公司,我们使用OpenAPI和AsyncAPI共享
Schema
对象。Schema Object
可以移动到一个单独的文件,然后由两个API规范的refLink使用。请注意,OpenAPI和AsyncAPI中的JSON Schema规范标准不同,例如定义
discriminator
的方法不同。tv6aics12#
现在,你可以像@kris13在他的回答中写的那样,在AsyncAPI和OpenAPI文档之间重用JSON Schemas。AsyncAPI解析器有一个可以解析OpenAPI schemas的插件。AsyncAPI支持多个schemas。
未来是更光明的,看看https://github.com/asyncapi/bindings/issues/2并参与关于HTTP绑定的讨论,我们可以重用OpenAPI的Path Item Object,这样你就可以在AsyncAPI中重用更多的OpenAPI。