评论

收藏

[Java] SpringBoot整合Swagger的方法示例

编程语言 编程语言 发布于:2021-10-08 10:38 | 阅读数:539 | 评论:0

这篇文章主要介绍了SpringBoot整合Swagger的方法示例,详细介绍了SpringBoot如何整合Swagger以及swagger注解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
依赖
<dependency>
 <groupid>io.springfox</groupid>
 <artifactid>springfox-swagger2</artifactid>
 <version>2.7.0</version>
</dependency>
<dependency>
 <groupid>io.springfox</groupid>
 <artifactid>springfox-swagger-ui</artifactid>
 <version>2.7.0</version>
</dependency>
配置类
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import springfox.documentation.builders.apiinfobuilder;
import springfox.documentation.builders.pathselectors;
import springfox.documentation.builders.requesthandlerselectors;
import springfox.documentation.service.apiinfo;
import springfox.documentation.service.contact;
import springfox.documentation.spi.documentationtype;
import springfox.documentation.spring.web.plugins.docket;
 
/**
 * swagger的配置类
 * @author 陈加兵
 *
 */
@configuration
public class swaggerconfig{
 /**
 * 创建用户api文档
 * @return
 */
 @bean
 public docket createrestuserapi(){
 return new docket(documentationtype.swagger_2)
 .groupname("user") 
 .apiinfo(apiinfo()) //api的信息
 .select()
 .apis(requesthandlerselectors
  .basepackage("cn.tedu.mycat.controller")) //添加包扫描
 .paths(pathselectors.any()).build();
 
 }
 
 /**
 * 创建api信息
 */
 private apiinfo apiinfo(){
 return new apiinfobuilder()
 .title("api文档的标题") //标题
 .description("api文档的描述") //描述
 .contact( //添加开发者的一些信息
  new contact("爱撒谎的男孩", "https://chenjiabing666.github.io",
  "18796327106@163.com")).version("1.0").build();
 }
 
}
启动类
在springboot的启动类上添加一个注解即可配置成功: @enableswagger2
访问api的路径
http://ip/projectname/swagger-ui.html
注解说明
@api

  • 标注在类上,用来对这个类进行说明的
  • 如果想要生成文档,必须在类或者接口上标注
  • 属性如下:
属性名称备注默认值valueurl的路径值 tags如果设置这个值、value的值会被覆盖 description对api资源的描述 basepath基本路径可以不配置 position如果配置多个api 想改变显示的顺序位置 producesfor example, “application/json, application/xml” consumesfor example, “application/json, application/xml” protocolspossible values: http, https, ws, wss. authorizations高级特性认证时配置 hidden配置为true 将在文档中隐藏@apioperation

  • 用在api方法上,对该api做注释,说明api的作用
  • 不需要多讲,看源码,使用默认的value属性即可,说明该方法的作用
  • 属性如下:
valueurl的路径值 tags如果设置这个值、value的值会被覆盖 notes对api资源的描述 response返回的对象,在文档中点击model可以获取该配置的内容 responsecontainer这些对象是有效的 “list”, “set” or “map”.,其他无效 responsereference可以不配置 httpmethod可以接受 “get”, “head”, “post”, “put”, “delete”, “options” and “patch” position如果配置多个api 想改变显示的顺序位置 produces同 api中的定义 consumes同 api中的定义 protocols同 api中的定义 authorizations同 api中的定义 hidden是否隐藏,true 或者false ,这个可以隐藏后台接口 codehttp的状态码 默认 200 extensions扩展属性@apiimplicitparams

  • 用来包含api的一组参数注解,可以简单的理解为参数注解的集合声明
  • 很重要,这个注解其中包含接口入参的详细说明
  • 内容是集合
@apiimplicitparam
用在 @apiimplicitparams 注解中,也可以单独使用,说明一个请求参数的各个方面
详细的属性使用说明如下:

  • name :属性的字段名称,相当于form表单中的name,这个就是入参的字段
  • datatype :参数的类型,标识,字符串
  • value :该参数的描述
  • required :是否必填,布尔值
  • defaultvalue :缺省值,会在文档中缺省填入,这样更方面造数据,不需要调用接口的去填值了
  • paramtype :指定参数的入参数方式(也就是请求参数的位置),其中有四种常用的,如下:

    • query
    • path
    • body
    • form

paramtype属性的详细说明

  • query :必须要和入参的字段一样,也可以使用 @requestparam() 指定
  • path :用于restful的风格的url,请求的参数写在路径上,如下:
@apioperation(value="根据用户id获取用户信息",response=user.class,hidden=false)
 @apiimplicitparams({
 @apiimplicitparam(paramtype = "path", name = "id", datatype="integer", required = false, value = "用户的id", defaultvalue = "1")
 })
 @getmapping("/user/get/{id}")
 public object getuser(@pathvariable("id")integer id){
 return new user(id, "陈加兵");
 }

  • body:以流的形式提交 仅支持post
    form:以表单的形式提交
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家
原文链接:https://chenjiabing666.github.io/2018/10/21/SpringBoot整合Swagger/

关注下面的标签,发现更多相似文章