文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring Boot+Swagger_UI怎么配置

2023-06-05 04:58

关注

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

一:pom.xml 依赖

<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.8.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.8.0</version></dependency>

二:application.yaml 开关配置

# swaggerswagger:   switch: true

三:SwaggerConfig.java 配置

@Configuration@EnableSwagger2public class SwaggerConfig {@Value("${swagger.switch}")private boolean swaggerSwitch;@Beanpublic 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<ApiKey> security() {return newArrayList(new ApiKey("token", "token", "header"));}}

四: 接口配置代码示例

@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<MsgPushInfoEntity> list(@RequestBody MsgPushInfoEntity msg) {logger.info("===========" + msgPushInfoService.list().size() + "===========");logger.error("===========" + msgPushInfoService.list().size() + "===========");return  new ArrayList<MsgPushInfoEntity>();}

五:swagger-ui展示

Spring Boot+Swagger_UI怎么配置

六:Swagger注解说明

@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版本中仍然可以使用

@ApiOperation

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

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

  value

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

  notes

  对操作的详细说明。

  httpMethod

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

  code

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

@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。

@ApiParam

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

  required

  是否为必传参数

  value

  参数简短说明

@ApiResponses

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

注解@ApiResponses内。

@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内的属性。

@ApiModel

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

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

  value

  model的别名,默认为类名

  description

  model的详细描述

@ApiModelProperty

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

  value

  属性简短描述

  example

  属性的示例值

  required

  是否为必须值

七:关于TOKER问题

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯