千家信息网

Spring Boot+Swagger_UI怎么配置

发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,本篇内容主要讲解"Spring Boot+Swagger_UI怎么配置",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spring Boot+Swagger
千家信息网最后更新 2025年02月12日Spring Boot+Swagger_UI怎么配置

本篇内容主要讲解"Spring Boot+Swagger_UI怎么配置",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spring Boot+Swagger_UI怎么配置"吧!

一:pom.xml 依赖

                                     io.springfox                        springfox-swagger2                        2.8.0                                                        io.springfox                        springfox-swagger-ui                        2.8.0                

二:application.yaml 开关配置

# swaggerswagger:   switch: true

三:SwaggerConfig.java 配置

@Configuration@EnableSwagger2public class SwaggerConfig {        @Value("${swagger.switch}")        private boolean swaggerSwitch;        @Bean        public Docket createRestApi() {                Docket docket = new Docket(DocumentationType.SWAGGER_2);                if (swaggerSwitch) {                        docket.enable(true);                } else {                        docket.enable(false);                }                docket.apiInfo(apiInfo()).select()                                // 加了ApiOperation注解的类,才生成接口文档                                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))                                // 包下的类,才生成接口文档                                .paths(PathSelectors.any()).build().securitySchemes(security());                return docket;        }        private ApiInfo apiInfo() {                return new ApiInfoBuilder().title("Demo").description("接口文档").termsOfServiceUrl("").version("0.1").build();        }        private List security() {                return newArrayList(new ApiKey("token", "token", "header"));        }}

四: 接口配置代码示例

/**          * @Title: list          * @Description: 测试          * @return void    返回类型          * @throws          */        @ApiOperation(value="消息列表查询",notes="消息列表查询")        @ApiImplicitParams({@ApiImplicitParam(name="userId",value="用户ID",required=true,dataType="int")})        @ApiResponses(value= {@ApiResponse(code = 200,message="Sucess",response=MsgPushInfoEntity.class,responseContainer="List")})        @RequestMapping(value="/list",method=RequestMethod.POST)        public List list(@RequestBody MsgPushInfoEntity msg) {                logger.info("===========" + msgPushInfoService.list().size() + "===========");                logger.error("===========" + msgPushInfoService.list().size() + "===========");                return  new ArrayList();        }

五:swagger-ui展示

六:Swagger注解说明

1.@Api

该注解将一个Controller(Class)标注为一个swagger资源(API)。在默认情况下,Swagger-Core只会扫描解析具有

@Api注解的类,而会自动忽略其他类别资源(JAX-RS endpoints,Servlets等等)的注解。该注解包含以下几个重要属性:

tags

API分组标签。具有相同标签的API将会被归并在一组内展示。

value

如果tags没有定义,value将作为Api的tags使用

description

API的详细描述,在1.5.X版本之后不再使用,但实际发现在2.0.0版本中仍然可以使用

2.@ApiOperation

在指定的(路由)路径上,对一个操作或HTTP方法进行描述。具有相同路径的不同操作会被归组为同一个操作对象。

不同的HTTP请求方法及路径组合构成一个唯一操作。此注解的属性有:

value

对操作的简单说明,长度为120个字母,60个汉字。

notes

对操作的详细说明。

httpMethod

HTTP请求的动作名,可选值有:"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" and "PATCH"。

code

默认为200,有效值必须符合标准的HTTP Status Code Definitions。

3.@ApiImplicitParams

注解ApiImplicitParam的容器类,以数组方式存储。

@ApiImplicitParam

对API的单一参数进行注解。虽然注解@ApiParam同JAX-RS参数相绑定,但这个@ApiImplicitParam注解可以以统一的方式

定义参数列表,也是在Servelet及非JAX-RS环境下,唯一的方式参数定义方式。注意这个注解@ApiImplicitParam必须被

包含在注解@ApiImplicitParams之内。可以设置以下重要参数属性:

name

参数名称

value

参数的简短描述

required

是否为必传参数

dataType

参数类型,可以为类名,也可以为基本类型(String,int、boolean等)

paramType

参数的传入(请求)类型,可选的值有path, query, body, header or form。

3.@ApiParam

增加对参数的元信息说明。这个注解只能被使用在JAX-RS 1.x/2.x的综合环境下。其主要的属性有:

required

是否为必传参数

value

参数简短说明

4.@ApiResponses

注解@ApiResponse的包装类,数组结构。即使需要使用一个@ApiResponse注解,也需要将@ApiResponse注解包含在

注解@ApiResponses内。

5.@ApiResponse

描述一个操作可能的返回结果。当REST API请求发生时,这个注解可用于描述所有可能的成功与错误码。可以用,也可以不

用这个注解去描述操作的返回类型,但成功操作的返回类型必须在@ApiOperation中定义。如果API具有不同的返回类型,那么需要分别定义返回值,并将返回类型进行关联。但Swagger不支持同一返回码,多种返回类型的注解。注意:这个注解必须被包含在@ApiResponses注解中。

code

HTTP请求返回码。有效值必须符合标准的HTTP Status Code Definitions。

message

更加易于理解的文本消息

response

返回类型信息,必须使用完全限定类名,比如"com.xyz.cc.Person.class"。

responseContainer

如果返回类型为容器类型,可以设置相应的值。有效值为 "List", "Set" or "Map",其他任何无效的值都会被忽略。

Model的注解

对于Model的注解,Swagger提供了两个:@ApiModel及@ApiModelProperty,分别用以描述Model及Model内的属性。

6.@ApiModel

提供对Swagger model额外信息的描述。在标注@ApiOperation注解的操作内,所有的类将自动被内省(introspected),

但利用这个注解可以做一些更加详细的model结构说明。主要属性有:

value

model的别名,默认为类名

description

model的详细描述

7.@ApiModelProperty

对model属性的注解,主要的属性值有:

value

属性简短描述

example

属性的示例值

required

是否为必须值

七:关于TOKER问题

考虑到安全的问题,每次请求API需要对用户进行验证与授权。目前主流的验证方式采用请求头部(request header)传递token,即用户登录之后获取一个token,然后每次都使用这个token去请求API。如果想利用swagger-UI进行API测试,必须显式为每个需要验证的API指定token参数。

到此,相信大家对"Spring Boot+Swagger_UI怎么配置"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0