swagger 如何记录同步和异步API的混合?我们使用AsyncAPI或OpenAPI还是两者兼而有之?

iqxoj9l9  于 2023-11-18  发布在  其他
关注(0)|答案(2)|浏览(172)

考虑一个由多个端点组成的应用程序,一些是同步的,另一些是异步的,遵循事件驱动架构,Kafka作为消息代理,与其他微服务通信。这些API的文档应该是什么标准?我们是否需要为异步创建单独的文档页面(使用AsyncAPI)和同步API(使用OpenAPI),或者有没有办法将两者合并合并到一个文档中?我在网上读到AsyncAPI是异步API的文档标准,和OpenAPI应该用于正常的同步Rest API,但是如果我们在一个应用程序中混合了不同类型的API,我们找不到任何相关的链接。我希望得到任何帮助/指导。

sg3maiej

sg3maiej1#

在我的公司,我们使用OpenAPI和AsyncAPI共享Schema对象。Schema Object可以移动到一个单独的文件,然后由两个API规范的refLink使用。
请注意,OpenAPI和AsyncAPI中的JSON Schema规范标准不同,例如定义discriminator的方法不同。

tv6aics1

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。

相关问题