Swagger RESTful API文档规范
*注意编写的关键词:“必须”、“不能”、“需要”、“应当”,“不得”、“应该”、“不应该”,“推荐”、“可能”和“可选的”
原文链接:http://swagger.io/specification/
介绍:
swagger是一个用于描述项目和文档RESTful api。
这里的规范定义了一组描述一个API所需的文件格式。 Swagger-UI项目所使用的这些文件可以显示API和Swagger-Codegen生成客户在不同的语言。 额外的工具也可以利用生成的文件,比如测试工具。
定义
路径模板
路径模板指的是使用大括号({ })URL路径的部分标记为可更换使用路径参数。
Mime类型
Mime类型定义分布在多个资源。 mime类型定义应符合RFC 6838。
一些例子可能的mime类型定义:
text/plain; charset=utf-8
application/json
application/vnd.github+json
application/vnd.github.v3+json
application/vnd.github.v3.raw+json
application/vnd.github.v3.text+json
application/vnd.github.v3.html+json
application/vnd.github.v3.full+json
application/vnd.github.v3.diff
application/vnd.github.v3.patch
HTTP状态代码
HTTP状态代码是用来指示执行操作的状态。 描述可用的状态码RFC 7231而在IANA状态代码注册表。
规范
格式
描述RESTful API的文件按照大摇大摆规范表示为JSON对象和符合JSON标准。 YAML是JSON的超集,也可以使用 代表的规范文件。
例如,如果一个领域据说数组值,将使用JSON数组表示:
{
"field" : [...]
}
尽管使用JSON API描述它不强加一个JSON API本身输入/输出。
规范中的所有字段名称区分大小写的。
模式暴露了两种类型的字段。 固定字段,声明的名字,和有图案的字段,字段名称声明一个正则表达式模式。 的字段可以有多次出现,只要每个人都有一个惟一名称。
文件结构
的狂妄表示API是由单个文件。 然而,部分的定义可以分为单独的文件中,在用户的自由裁量权。 这是适用于$ref字段的规范如下JSON模式定义。
按照惯例,大摇大摆规范文件命名swagger.json。
数据类型
原始数据类型大摇大摆规范中基于支持的类型JSON-Schema草案4。 模型是描述使用模式对象这是一个子集的JSON模式草案4。
一个额外的原始数据类型"file"使用参数对象和响应对象设置参数类型或响应作为一个文件。
原语有一个可选的修饰符属性format。 大摇大摆使用几个已知的格式更精确定义所使用的数据类型。 然而,format房地产是一个开放的string价值属性,并且可以支持文档需要有任何价值。 格式如"email","uuid"等,可以使用,即使他们不是由该规范定义的。 类型不伴随着format属性遵循它们的定义从JSON模式(除了file上面的类型定义)。 定义的格式的规范有:
| 普通的名字 | type |
format |
说明 |
|---|---|---|---|
| integer | integer |
int32 |
签署了32位 |
| long | integer |
int64 |
签署了64位 |
| float | number |
float |
|
| double | number |
double |
|
| string | string |
||
| byte | string |
byte |
base64编码的字符 |
| binary | string |
binary |
任何的八位字节序列 |
| boolean | boolean |
||
| date | string |
date |
所定义的full-date- - - - - -RFC3339 |
| dateTime | string |
date-time |
所定义的date-time- - - - - -RFC3339 |
| password | string |
password |
用来提示用户界面输入需要模糊。 |
模式
这是一根文档对象的API规范。 它结合了以前是什么资源清单和API声明(1.2和更早的版本)到一个文档。
固定的字段
| 字段名 | 类型 | 描述 |
|---|---|---|
| swagger | string |
必需的。使用指定的规范版本。 可以用它大摇大摆的UI和其他客户解释API清单。 的值必须"2.0"。 |
| info | Info Object | 必需的。提供元数据API。 可以使用元数据的客户如果需要。 |
| host | string |
主机名或ip服务API。 这一定是主机,不包括计划和sub-paths。 这可能包括一个港口。 如果host不包括,使用主机服务文档(包括港口)。 的host不支持路径模板。 |
| basePath | string |
API的基本路径,这是相对的host。 如果不包括,API是直属host。 必须从价值领先斜杠(/)。 的basePath不支持路径模板。 |
| schemes | [string] |
API的传输协议。 值必须从列表中:"http","https","ws","wss"。 如果schemes不包括,默认使用计划是用于访问大摇大摆的定义本身。 |
| consumes | [string] |
一个MIME类型的api可以使用列表。 这是可以覆盖全球所有API,但在特定的API调用。 值必须是所描述的Mime类型。 |
| produces | [string] |
MIME类型的api可以产生的列表。 这是可以覆盖全球所有API,但在特定的API调用。 值必须是所描述的Mime类型。 |
| paths | 路径对象 | 必需的。可用的路径和操作的API。 |
| definitions | 定义对象 | 一个对象数据类型生产和使用操作。 |
| parameters | 参数定义对象 | 一个对象来保存参数,可以使用在操作。 这个属性不为所有操作定义全局参数。 |
| responses | 反应定义对象 | 一个对象响应,可以跨操作使用。 这个属性不为所有操作定义全球响应。 |
| securityDefinitions | 安全定义对象 | 安全方案定义规范,可以使用。 |
| security | (安全需求对象] | 声明的安全计划申请API作为一个整体。 值的列表描述替代安全方案,可以使用(也就是说,有一个逻辑或安全需求之间)。 个人业务可以覆盖这个定义。 |
| tags | (标签对象] | 的列表标签使用的规范与额外的元数据。 标签的顺序可以用来反思他们的订单的解析工具。 并不是所有使用的标签操作对象必须声明。 声明的标签不可能组织随机或基于工具的逻辑。 列表中的每个标记名称必须是唯一的。 |
| externalDocs | 外部文档对象 | 额外的外部文档。 |
固定的字段
| 字段名 | 类型 | 描述 |
|---|---|---|
| tags | (string] |
的标签列表API文档控制。 标签可用于逻辑分组业务的资源或任何其他限定符。 |
| summary | string |
什么操作的一个简短的总结。 最大swagger-ui可读性,这一领域应小于120个字符。 |
| description | string |
详细解释操作的行为。GFM语法可用于富文本表示。 |
| externalDocs | 外部文档对象 | 额外的外部文档操作。 |
| operationId | string |
独特的字符串用于识别操作。 id必须是唯一的在所有业务中所描述的API。 工具和库可以使用operationId来唯一地标识一个操作,因此,建议遵循通用的编程的命名约定。 |
| consumes | [string] |
MIME类型的列表操作可以使用。 这将覆盖consumes定义在炫耀的对象。 空值可用于全球定义清楚。 值必须是所描述的Mime类型。 |
| produces | [string] |
MIME类型的列表操作可以产生。 这将覆盖produces定义在炫耀的对象。 空值可用于全球定义清楚。 值必须是所描述的Mime类型。 |
| parameters | (参数对象 |引用对象] | 适用于该操作的参数列表。 如果已经定义了一个参数道路项目新定义将覆盖它,但不能删除它。 必须不包含重复的参数列表。 一个独特的参数定义的组合的名字和位置。 可以使用列表引用对象链接到参数的定义的对象的参数。 可以有一个“身体”参数。 |
| responses | 响应对象 | 必需的。返回的列表可能的反应,因为他们执行这个操作。 |
| schemes | [string] |
传输协议的操作。 值必须从列表中:"http","https","ws","wss"。 的值将覆盖的对象schemes定义。 |
| deprecated | boolean |
声明该操作被弃用。 使用声明的操作应该没有。 默认值是false。 |
| security | (安全需求对象] | 声明的安全计划申请这个操作。 值的列表描述替代安全方案,可以使用(也就是说,有一个逻辑或安全需求之间)。 这个定义覆盖任何宣布顶级security。 删除一个顶级安全声明,可以使用一个空数组。 |
Swagger RESTful API文档规范的更多相关文章
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- 集成 Swagger2 构建强大的 RESTful API 文档
微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 快过年了,不知道你们啥时候放年假,忙不忙.反正我是挺闲的,所以有时间写 blog.今天给你们带来 SpringBoo ...
- Spring Boot2 系列教程 (四) | 集成 Swagger2 构建强大的 RESTful API 文档
前言 快过年了,不知道你们啥时候放年假,忙不忙.反正我是挺闲的,所以有时间写 blog.今天给你们带来 SpringBoot 集成 Swagger2 的教程. 什么是 Swagger2 Swagger ...
- springboot利用swagger构建api文档
前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...
- Spring Boot 入门系列(二十二)使用Swagger2构建 RESTful API文档
前面介绍了如何Spring Boot 快速打造Restful API 接口,也介绍了如何优雅的实现 Api 版本控制,不清楚的可以看我之前的文章:https://www.cnblogs.com/zha ...
- 在ASP.NET Core Web API上使用Swagger提供API文档
我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...
- Core Web API上使用Swagger提供API文档
在ASP.NET Core Web API上使用Swagger提供API文档 我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的AP ...
- Spring Boot中使用Swagger2构建强大的RESTful API文档
由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...
- springboot+mybatis-puls利用swagger构建api文档
项目开发常采用前后端分离的方式.前后端通过API进行交互,在Swagger UI中,前后端人员能够直观预览并且测试API,方便前后端人员同步开发. 在SpringBoot中集成swagger,步骤如下 ...
随机推荐
- (转) Linux(Centos7)yum安装最新mysql
原文:http://blog.csdn.net/gebitan505/article/details/54613549 环境 CentOS 7.1 (64-bit system) MySQL 5.6. ...
- 漫谈NIO(2)之Java的NIO
1.前言 上章提到过Java的NIO采取的是多路IO复用模式,其衍生出来的模型就是Reactor模型.多路IO复用有两种方式,一种是select/poll,另一种是epoll.在windows系统上使 ...
- 【转】Session 过期问题处理
原文:http://www.cnblogs.com/powerfan/archive/2011/03/29/1998691.html 在Asp.net应用中,很多人会遇到Session过期设置有冲突. ...
- CentOS7.4安装Java8
官网下载Jdk8Linux64位版本: 使用MobaXterm工具连接远程Linux系统: 上传刚才下载好的文件到远程系统下 /usr/local/ 文件夹: 先进入压缩包所在目录再输入命令解压jdk ...
- Kafka—性能逆天的存在
0.引言 Kafka是LinkedIn开源出来的一款消息服务器,用Scala语言实现:这货的性能是百万级的QPS(估计是挂载了多块磁盘),我随便写个测试程序就是十万级. 1.Kafka基本概念 在Ka ...
- centos虚拟机网络配置--桥接模式
什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥 进行通信.在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接 设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在 ...
- 在Ubuntu16.04上使用Open Grok
Open Grok是一个强大的源代码搜索和对照引擎,是Open Solaris的源文件浏览及搜索工具.虽然Open Solaris已经不复存在,但这个工具仍然处于开发与维护之中. 相信我,绝对值得你拥 ...
- Spring中使用两种Aware接口自定义获取bean
在使用spring编程时,常常会遇到想根据bean的名称来获取相应的bean对象,这时候,就可以通过实现BeanFactoryAware来满足需求,代码很简单: @Servicepublic clas ...
- T24银行核心业务系统
T24银行核心业务系统 http://www.pianshen.com/search http://www.pianshen.com/article/8248107255/
- 【C#】组件分享:FormDragger窗体拖拽器
适用:.net2.0+ winform项目 介绍: 类似QQ.迅雷等讲究UI体验的软件,都支持在窗口内多处地方拖动窗口,而不必老实巴交的去顶部标题栏拖,这个组件就是让winform也能这样随性拖拽,随 ...