1springfox-swagger2整合到微服务

1swagger优势:

1.1文档自动生成。不用担心修改接口代码之后忘记更新文档的尴尬。

1.2支持在线测试。不需要再用postman等,可以直接进行测试,并获取内容。

2特点:

2.3它是Spring Framework的Swagger集成。它可以自动检查您的类,检测控制器,它们的方法,它们使用的模型类以及它们映射到的URL。没有任何手写文档,只需检查应用程序中的类,它就可以生成大量有关API的信息。

2.4它还提供了一个Web UI,它可以将元数据转换为一个很好的HTML文档。此外,通过该UI,您不仅可以浏览有关API端点的信息,还可以将UI用作REST客户端 - 您可以调用任何端点,指定要发送的数据并检查响应。它非常方便。

3API属性描述:

2.1它可以使用JSON或YAML元数据描述API的属性

Swagger API Spec对你Rest API的每一个操作的请求消息的参数(Path,Query,Body,Form),响应消息的状态码和消息体的json结构都进行了详细的描述。

Swagger API Spec包含以下部分:

swagger,指定swagger spec版本,2.0

info,提供API的元数据

tags,补充的元数据,在swagger ui中,用于作为api的分组标签

host,主机,如果没有提供,则使用文档所在的host

basePath,相对于host的路径

schemes,API的传输协议,http,https,ws,wss

consumes,API可以消费的MIME类型列表

produces,API产生的MIME类型列表

paths,API的路径,以及每个路径的HTTP方法,一个路径加上一个HTTP方法构成了一个操作。每个操作都有以下内容:

tags,操作的标签

summary,短摘要

description,描述

externalDocs,外部文档

operationId,标识操作的唯一字符串

consumes,MIME类型列表

produces,MIME类型列表

parameters,参数列表

responses,应答状态码和对于的消息的Schema

schemes,传输协议

deprecated,不推荐使用

security,安全

definitions,定义API消费或生产的数据类型,使用json-schema描述,操作的parameter和response部分可以通过引用的方式使用definitions部分定义的schema

parameters,多个操作共用的参数

responses,多个操作共用的响应

securityDefinitions,安全scheme定义

security,安全声明

externalDocs,附加的外部文档

2.2当然也可以使用注解描述API的属性

常用注解如下:

@Api:用在请求的类上,表示对类的说明

    tags="说明该类的作用,可以在UI界面上看到的注解"

    value="该参数没什么意义,在UI界面上也看到,所以不需要配置"

@ApiOperation:用在请求的方法上,说明方法的用途、作用

    value="说明方法的用途、作用"

    notes="方法的备注说明"

@ApiImplicitParams:用在请求的方法上,表示一组参数说明

    @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

        name:参数名

        value:参数的汉字说明、解释

        required:参数是否必须传

        paramType:参数放在哪个地方

            · header --> 请求参数的获取:@RequestHeader

            · query --> 请求参数的获取:@RequestParam

            · path(用于restful接口)--> 请求参数的获取:@PathVariable

            · body(不常用)

            · form(不常用)   

        dataType:参数类型,默认String,其它值dataType="Integer"     

        defaultValue:参数的默认值

@ApiResponses:用在请求的方法上,表示一组响应

    @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

        code:数字,例如400

        message:信息,例如"请求参数没填好"

        response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息

            (这种一般用在post创建的时候,使用@RequestBody这样的场景,

            请求参数无法使用@ApiImplicitParam注解进行描述的时候)

    @ApiModelProperty:用在属性上,描述响应类的属性

4使用方式(官网截图):

4.1添加依赖(从maven中查找新的依赖版本即可):

1springfox-swagger2整合到微服务_第1张图片
1springfox-swagger2整合到微服务_第2张图片

添加完SwaggerUI依赖后就可以访问其提供的swagger-ui.html了,看依赖结构就知道咋回事了


1springfox-swagger2整合到微服务_第3张图片


4.2配置整合springboot,修改UI显示模块信息

(1)Docket配置

1springfox-swagger2整合到微服务_第4张图片

(2)Docket得路径及过滤配置

1springfox-swagger2整合到微服务_第5张图片

3)自定义显示配置(APIInfo)

1springfox-swagger2整合到微服务_第6张图片

(4)返回信息配置

1springfox-swagger2整合到微服务_第7张图片

(5)OAuth-secured API配置

1springfox-swagger2整合到微服务_第8张图片
1springfox-swagger2整合到微服务_第9张图片
1springfox-swagger2整合到微服务_第10张图片
1springfox-swagger2整合到微服务_第11张图片
1springfox-swagger2整合到微服务_第12张图片

(6)静态文件路径映射配置

1springfox-swagger2整合到微服务_第13张图片


4.3校验springfox是否有效:

1springfox-swagger2整合到微服务_第14张图片
1springfox-swagger2整合到微服务_第15张图片


4.4Bean的校验

(1)添加bean校验依赖

1springfox-swagger2整合到微服务_第16张图片

(2)添加校验注解

1springfox-swagger2整合到微服务_第17张图片

(3)将校验的配置注入springfox配置中

1springfox-swagger2整合到微服务_第18张图片

你可能感兴趣的:(1springfox-swagger2整合到微服务)