Swagger UI 详细讲解

本文章描述的是Swagger3.0的内容,与Swagger2.0内容有较大差别。接口描述在3.0中通过Swagger规范(一个JSON文件)来描述,Swagger2.0是通过在接口中提供一系列注解来描述的。

 

1.集成Swagger 

      Swagger提供了一组静态页面,可以在SpringBoot应用中集成这些静态页面,直接访问静态页面,并打开指定的Swagger规范,就可以显示RESTFul接口:

  • 进入Swagger官网,选择Swagger UI,点击下载。
  • 页面会跳转到GitHub
  • 在GitHub中,选择一个最新的版本下载,目前最新的是Swagger UI 3.20.5.
  • 下载解压后,找到dist目录,将目录里面所有的文件复制到新的SpringBoot项目中src\main\resources\static\swagger3\目录下面。
  • 访问http://localhost:8080/swagger3/index.html,会出现如下界面。

  该页面加载的时候,会自动打开一个swagger接口规范文档,如上图输入框中所示:https://petstore.swagger.io/v2/swagger.json

  打开后的页面分为两部分,第一部分为接口的基本信息,包含了项目名称,描述等信息;第二部分包含了每个接口的具体描述,如接口名字,参数名字,参数类型,是否必填等,还有返回的结果的示例。

注意:默认提供的Petstore接口调用并不能成功,因为这涉及跨域问题,在localhost环境下发起对petstore.swagger.io的AJAX调用会导致失败。

2.Swagger规范

    swagger规范是一个JSON格式的文件,包含项目基本信息及具体接口描述信息,可以在swagger3下创建一个sample.json文件,我们将逐渐完善。

{
  "swagger":"2.0",
  "info":{
    "description":"这是一个项目简单实例",
    "version":"1.0",
    "tirle":"系统接口",
  },
  "basePath":"/api/v1",
  "consumes":[
    "application/x-www-form-urlencode"
  ]
}
  • 属性swagger总是规范的第一个属性,固定为2.0,指的是Swagger规范2.0。
  • info描述了一个项目的基本信息。
  • basePath:指的是RESRFul接口的实际地址,以上是/api/v1,则REST接口的地址则是127.0.0.1:8080/api/v1。
  • consumes:指提交的内容是表单。

重新访问网址http://localhost:8080/swagger3/index.html,并且在页面填写规范地址:

http://localhost:8080/swagger3/sample.json

点击Explore按钮,页面刷新后,如下所示:

3.接口描述

 

"paths":{
     "/order/{orderId}":{
       "get":{
         "summary":"获取订单详细信息",
         "description":"传入订单编号,获取订单信息",
         "parameters":[
           {
             "name":"orderId",
             "in":"path",
             "description":"订单Id",
             "required":true
           }
         ],
         "responses":{
           "200":{
             "description":"获取用户信息成功"
           }
         }
       }
     }
  }

每个接口包含了以下信息:

  • summary:接口主要功能的简要描述
  • description:接口详细描述
  • parameters:接口的参数,REST参数在Swagger中分为四个类型,以上实例的参数类型是path,也就是参数是从path中获取的,其他的还有body,parameter等。
  • response:对应了HTTP status的提示信息,这里描述了成功的提示信息。

4.查询参数描述

 

        "parameters":[
          {
            "name":"offset",
            "in":"query",
            "description":"查询起始位置",
            "required":true
          }
        ]
https://localhost:8080/api/v1/order?offset=12

5.HTTP头参数

        "parameters":[
          {
            "name":"X-Request-ID",
            "in":"header",
            "description":"",
          }
        ]

6.表单参数

使用application/x-www-form-urlencoded提交的参数,in的值使用formData。

        "parameters":[
          {
            "name":"orderName",
            "in":"formData",
            "description":"",
            "required":true
          }
        ]

7.文件上传参数 

        "parameters":[
          {
            "name":"orderName",
            "in":"formData",
            "description":"",
            "type":"file"
          }
        ]

8.整个请求体作为参数

    "/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"
        }
      }
    }
  }

 

 

未完待续...

 

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger3中,可以通过自定义注解来进一步定制和扩展API文档的展示和功能。自定义注解允许开发者添加额外的信息,以便更好地描述和解释API接口。以下是Swagger3中常用的自定义注解: 1. @Api:用于描述整个Controller或接口的基本信息,包括接口的名称、描述等。 2. @ApiOperation:用于描述具体的API接口,包括接口的名称、描述、请求方法等。 3. @ApiParam:用于描述接口的参数,包括参数名称、描述、是否必须等信息。 4. @ApiModel:用于描述实体类或DTO的基本信息,包括类的名称、描述等。 5. @ApiModelProperty:用于描述实体类或DTO的属性,包括属性的名称、描述、示例值等。 通过使用这些自定义注解,开发者可以清晰地定义和展示API接口的各种信息,方便其他开发人员理解和使用接口。同时,Swagger3还提供了丰富的UI界面,可以直观地展示接口的参数和返回结果,并提供接口测试的功能,类似于Postman工具。这样开发人员可以方便地测试和调试接口,提高开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Springboot整合Swagger3全注解配置(springdoc-openapi-ui)](https://blog.csdn.net/weixin_44768189/article/details/115055784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Swagger2注解的介绍](https://blog.csdn.net/weixin_33883178/article/details/92424879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值