OpenAPI规范入门
由于API对于我们的软件运行方式至关重要,因此记录我们的API对于确保我们大型IT组织中的每个人都了解正在发生的事情至关重要,这就是我们使用OpenAPI来帮助记录API规范的原因。
在本文中,我将向你介绍OpenAPI规范和API-First开发原则。
OpenAPI规范
OpenAPI规范始于Swagger规范,经过Reverb Technologies和SmartBear等公司多年的发展,OpenAPI计划拥有该规范(捐赠之后),OpenAPI Initiative在GitHub上托管社区驱动的规范。
规范是一种与语言无关的格式,用于描述RESTful Web服务,应用程序可以解释生成的文件,这样才能生成代码、生成文档并根据其描述的服务创建模拟应用。
什么是API优先开发?
应用程序向云环境这一演变趋势为更好地集成服务和增加代码重用提供了机会,只要拥有一个接口,然后通过该接口,其他服务的应用程序就可以与你的应用程序进行交互,这是向其他人公开你的功能,但是,开发API却不应该是在开发后才公开功能。
API文档应该是构建应用程序的基础,这个原则正是API-First(API优先)开发的全部内容,你需要设计和创建描述新服务与外部世界之间交互的文档,一旦建立了这些交互,就可以开发代码逻辑来支持这些交互。让我们来看看这种方法带来的好处。
API-First如何使您的组织受益
当你的组织从API文档开始时,这允许团队在开发过程中更快地开始彼此交互。API文档是应用程序与使用它的人之间的合同。
内部开发可以在API合同背后进行,而不会干扰使用它的人的努力,计划使用你的应用程序的团队可以使用API规范来了解如何与你的应用程序进行交互,甚至在开发之前。他们还可以使用该文档创建用于测试其应用程序的虚拟服务。
OpenAPI文档的剖析
该规范的当前版本是3.0.1版,并在OpenAPI GitHub存储库中进行了详细记录。但是,如果你像我一样,我更喜欢看一个规范的例子,而不是通过描述文档描述每个可能的部分的明确的技术细节。
让我们看一个描述服务API的简单API文档,它允许用户创建,修改,检索和删除用户首选项。您可以在SwaggerHub上完整地查看此API 。
OpenAPI文档有三个必需的部分或对象:
1. openapi - OpenAPI规范版本的语义版本号
2. info - 有关API的元数据
3. paths - API的可用路径和操作
你可以根据需要包含其他对象。其他对象包括安全性,服务器,标签和组件。
openapi: 3.0.1 |
openapi对象声明了用于文档的规范的版本。该版本对于用户理解文档的结构至关重要,更重要的是,对于可能为了验证目的而获取文档或创建虚拟服务的任何工具,info对象提供有关API本身的基本信息。标题和版本是必填字段,我们可以选择包含其他信息,例如说明,联系和许可信息。
路径对象
paths路径对象是API文档的核心。此对象详细说明了可与应用程序交互的路径,可用的方法以及这些交互包含的内容的详细信息。该对象包括请求参数和预期结果:
paths: |
上面的摘录描述了按ID检索用户设置的GET请求路径,这些属性大多是不言自明的。值得注意的是HTTP 200响应的模式。$ ref属性引用文件中其他位置的对象,它是用于多个路径的描述:
#/components/schemas/Preference的结构如下:
components: |
在另外一个地方定义组件并引用它,这种方式能让我们重用相同的定义并使我们的OpenAPI合同更易于管理。
在swaggerhub有在线编辑器可以体验。
Getting Started with the OpenAPI Specification · S
OpenAPI规范入门的更多相关文章
- OPENAPI规范Swagger
OPENAPI规范 是一种规范,Swagger是一种工具,Swagger帮我们使用OPENAPI更具体更完善,更好. 博客1:https://app.swaggerhub.com/help/index ...
- 【API规范】OpenAPI规范
OpenAPI规范 openAPI 3.0_百度搜索 OpenAPI Specification 2.0 - CSDN博客 APP相关_API 列表_OpenAPI 2.0_开发指南_移动推送-阿里云 ...
- Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)
Liferay最大的问题是BPM弱,如果做企业开发,BPM必不可少,所以直入主题,做个BPMN2入门. 本文参考地址:http://activiti.org/userguide/index.html# ...
- OpenAPI 3.0 规范-食用指南
概述 OpenAPI 3.0 规范由 8 个根对象组成: openapi info servers paths components security tags externalDocs OpenAP ...
- REST easy with kbmMW #20 – OpenAPI and Swagger UI
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种 ...
- Swagger使用教程大全,从入门到精通
Swagger是遵守OpenAPI规范(OAS)的世界上最大的API框架开发工具,可在整个API生命周期内进行开发,从设计和文档到测试和部署.它提供了许多试用的工具来帮助开发者进行接口开发,如及时接口 ...
- Swagger从入门到精通
https://legacy.gitbook.com/book/huangwenchao/swagger/details 如何编写基于OpenAPI规范的API文档 [TOC] 前言 编写目的 本文介 ...
- OpenAPI初体验
问题的一开始源于客户和服务部门抱怨我的REST API文档写得不好,然后又了解到 django rest framework 利用 coreapi 能自动生成文档,再就是看到 swagger.io 上 ...
- 基于OAS设计可扩展OpenAPI
前言 随着互联网行业的兴起,开发模式已逐步转换为微服务自治:小团队开发微服务,然后通过Restful接口相互调用.开发者们越来越渴望能够使用一种“官话”进行流畅的沟通,甚至实现多种编程语言系统的自动化 ...
随机推荐
- spring 整合mongodb报NoSuchMethodError错误
刚开始通过网上查到相关的资料进行了一些配置,参考链接:http://www.open-open.com/lib/view/open1454374782167.html maven的dependenci ...
- session传值取值
protected void Page_Load(object sender, EventArgs e) { //判断session是否为空 if (Session["user"] ...
- 抽象类能使用 final 修饰吗?(未完成)
抽象类能使用 final 修饰吗?(未完成)
- 【CF598 Div3 F】Equalizing Two Strings
一道通篇结论的傻逼题,被 lh 随手秒了 别告诉我你不会 Div3 的题,你肯定在 fake 没看过题解,以下做法纯属口胡,应该没问题 Description https://www.luogu.or ...
- jenkins"控制台输出"乱码问题解决
今天在搭建Jenkins环境时,安装完Tomcat.Jenkins.创建项目进行构建后,在查看控制台输出时,结果中文全部显示乱码.然后呢,就是漫长的解决历程,最终呢,解决乱码问题的时间终于超过了环境搭 ...
- Ubuntu14版桌面突然卡住怎么办
参考:https://blog.csdn.net/hautxuhaihu/article/details/78924926 (1)ctrl+alt+f1...6进入命令行终端.用户名,密码登录. (2 ...
- BZOJ 3514: Codechef MARCH14 GERALD07加强版 (LCT维护最大生成树+主席树)
题意 给出nnn个点,mmm条边.多次询问,求编号在[l,r][l,r][l,r]内的边形成的联通块的数量,强制在线. 分析 LCTLCTLCT维护动态最大生成树,先将每条边依次加进去,若形成环就断掉 ...
- JavaScript变量、作用域和内存问题总结
㈠理解基本类型和引用类型的值 ⑴JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值. ⑵基本类型的值源自以下 5 种基本数据类型:Undefined.Null.Boolean. ...
- React组件式编程Demo-用户的增删改查
1.项目结构 项目是基于webpack4, 参考 创建基本的webpack4.x项目 2.页面效果 初始化效果
- Java的23种设计模式 <二>
1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of acc ...