Rest 使用OpenAPI到底有什么意义?
尽管我在日常工作中反复构建和使用restapi,但我并不是来自使用OpenAPI或类似的东西的背景。在我目前的角色中,我们总是定义OpenAPI规范,这似乎是流程中假定的一部分。团队认为这非常重要 然而,就我的一生而言,我无法认识到它的一个好处。我在努力更好地理解 在我知道它能做的事情中,没有一件看起来是有益的,但是我不得不错过一些东西Rest 使用OpenAPI到底有什么意义?,rest,api,openapi,Rest,Api,Openapi,尽管我在日常工作中反复构建和使用restapi,但我并不是来自使用OpenAPI或类似的东西的背景。在我目前的角色中,我们总是定义OpenAPI规范,这似乎是流程中假定的一部分。团队认为这非常重要 然而,就我的一生而言,我无法认识到它的一个好处。我在努力更好地理解 在我知道它能做的事情中,没有一件看起来是有益的,但是我不得不错过一些东西 OpenAPI规范可以生成文档,但在我看来,文档是供人阅读的,应该由人编写。生成的文档可能包含所有的位,但是没有一个包含整个API使用的上下文和细微差别 Op
- OpenAPI规范可以生成文档,但在我看来,文档是供人阅读的,应该由人编写。生成的文档可能包含所有的位,但是没有一个包含整个API使用的上下文和细微差别
- OpenAPI规范可以为单个API生成多种语言的客户端代码。通常,它们只是将RESTURL结构映射到方法名。这真的有用吗?这意味着我可以做
而不是client.books.get(title=“Moby Dick”)
。它所做的一切都是围绕着相同的名称进行转换,而不是让任何事情变得更简单或更简洁。那么,再说一遍,重点是什么?生成的客户端似乎根本没有添加任何内容client.get(“/books”,{'title':'Moby Dick'})
有谁能启发我吗?OpenAPI规范本身并不是一件有益的事情。根据我的经验,在许多服务相互交互的微服务环境中,它们是一个巨大的好处 与所有接口一样,RESTful接口可以被视为服务提供者和服务使用者之间的契约 提供者承诺提供一组特定的操作,使用者可以订阅这些操作及其各自的端点 本例中的OpenAPI规范是参与者可以达成一致的合同草案。如果他们一开始不同意,他们就有api规范需要协商 当然,这是一个非技术方面 在更多的技术方面,我发现有三个方面非常有用 1。从单一来源生成代码和文档 当涉及到文档时,有两个丑陋的事实:没有人喜欢写它,没有人喜欢读它,而且大多数时候,它已经过时了 有了OpenAPI规范和其他类似工具,您就有了用于生成实际代码和文档的规范。两者都不过时的可能性更大。然而,机会仍然不是100% 2。无需编写样板代码 使用OpenAPI规范,不再需要手动实现数据类和简单的客户端和服务器代码。对于许多用例,您可以省略设置项目——您不需要编写spring引导服务器或java数据传输对象。如果您有api规范,生成器将为您执行此操作 当您处理一个只提供少数端点和数据对象的简单api时,这并不是一件大事。但是,当您面对数百个端点和数据类时(正如我所看到的),有了一个编写良好的api规范,事情就会变得容易得多 3。工具 openapi生态系统()中存在许多工具。它不仅仅是代码生成器 有一个很棒的规范文件编辑器,有数据验证器,测试数据生成器等 TL;DR 你当然是对的。基本上,OpenAPI及其背后的整个工具套件将生成客户机和服务器代码,并充当rest端点和生成代码之间的映射器 但是,编写映射代码可能会很枯燥且容易出错。最好让一些工具来帮你 此外,机器可读的api规范可以用作api合同清单。它可以在git存储库上进行版本控制,并通过nexus repo进行分发
如果使用得当,它可以让你的生活变得更轻松。好吧,我可以在这里给你一些好处