本文章描述的是Swagger3.0的内容,与Swagger2.0内容有较大差别。接口描述在3.0中通过Swagger规范(一个JSON文件)来描述,Swagger2.0是通过在接口中提供一系列注解来描述的。
Swagger提供了一组静态页面,可以在SpringBoot应用中集成这些静态页面,直接访问静态页面,并打开指定的Swagger规范,就可以显示RESTFul接口:

该页面加载的时候,会自动打开一个swagger接口规范文档,如上图输入框中所示:https://petstore.swagger.io/v2/swagger.json。
打开后的页面分为两部分,第一部分为接口的基本信息,包含了项目名称,描述等信息;第二部分包含了每个接口的具体描述,如接口名字,参数名字,参数类型,是否必填等,还有返回的结果的示例。
注意:默认提供的Petstore接口调用并不能成功,因为这涉及跨域问题,在localhost环境下发起对petstore.swagger.io的AJAX调用会导致失败。
swagger规范是一个JSON格式的文件,包含项目基本信息及具体接口描述信息,可以在swagger3下创建一个sample.json文件,我们将逐渐完善。
{
"swagger":"2.0",
"info":{
"description":"这是一个项目简单实例",
"version":"1.0",
"tirle":"系统接口",
},
"basePath":"/api/v1",
"consumes":[
"application/x-www-form-urlencode"
]
}重新访问网址http://localhost:8080/swagger3/index.html,并且在页面填写规范地址:
http://localhost:8080/swagger3/sample.json
点击Explore按钮,页面刷新后,如下所示:

"paths":{
"/order/{orderId}":{
"get":{
"summary":"获取订单详细信息",
"description":"传入订单编号,获取订单信息",
"parameters":[
{
"name":"orderId",
"in":"path",
"description":"订单Id",
"required":true
}
],
"responses":{
"200":{
"description":"获取用户信息成功"
}
}
}
}
}
每个接口包含了以下信息:
"parameters":[
{
"name":"offset",
"in":"query",
"description":"查询起始位置",
"required":true
}
]https://localhost:8080/api/v1/order?offset=12
"parameters":[
{
"name":"X-Request-ID",
"in":"header",
"description":"",
}
]使用application/x-www-form-urlencoded提交的参数,in的值使用formData。
"parameters":[
{
"name":"orderName",
"in":"formData",
"description":"",
"required":true
}
] "parameters":[
{
"name":"orderName",
"in":"formData",
"description":"",
"type":"file"
}
] "/order":{
"post":{
"summary":"创建订单",
"description":"创建一个新订单",
"parameters":[
{
"name":"order",
"in":"body",
"description":"包含订单信息的JSON",
"required":true,
"schema":{
"$ref":"#/definitions/order"
}
}
],
"responses":{
"200":{
"description":"创建订单成功"
}
}
}
} "definitions":{
"order":{
"type":"object",
"properties":{
"id":{
"type":"string"
},
"name":{
"type":"string"
}
}
}
}未完待续…
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226802.html原文链接:https://javaforall.cn