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