SpringBoot整合Swagger2的示例
程序员文章站
2022-03-24 15:13:18
一、导入maven包 io.springfox spring...
一、导入maven包
<dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger2</artifactid> <version>2.9.2</version> </dependency> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger-ui</artifactid> <version>2.9.2</version> </dependency>
二、添加工具类
@configuration @enableswagger2 public class swaggerconfig { @bean public docket createrestapi() { return new docket(documentationtype.swagger_2) .pathmapping("/") .select() .apis(requesthandlerselectors.basepackage("com.nvn.controller")) .paths(pathselectors.any()) .build().apiinfo(new apiinfobuilder() .title("springboot整合swagger") .description("springboot整合swagger,详细信息......") .version("1.0") .build()); } }
三、添加注解
@restcontroller @api(tags = "用户管理相关接口") @requestmapping("/user") public class usercontroller { @postmapping("/") @apioperation("添加用户的接口") @apiimplicitparams({ @apiimplicitparam(name = "username", value = "用户名", defaultvalue = "李四"), @apiimplicitparam(name = "address", value = "用户地址", defaultvalue = "深圳", required = true) } ) public respbean adduser(string username, @requestparam(required = true) string address) { return new respbean(); } @getmapping("/") @apioperation("根据id查询用户的接口") @apiimplicitparam(name = "id", value = "用户id", defaultvalue = "99", required = true) public user getuserbyid(@pathvariable integer id) { user user = new user(); user.setid(id); return user; } @putmapping("/{id}") @apioperation("根据id更新用户的接口") public user updateuserbyid(@requestbody user user) { return user; } }
四、注解说明
- @api注解可以用来标记当前controller的功能。
- @apioperation注解用来标记一个方法的作用。
- @apiimplicitparam注解用来描述一个参数,可以配置参数的中文含义,也可以给参数设置默认值,这样在接口测试的时候可以避免手动输入。
- 如果有多个参数,则需要使用多个@apiimplicitparam注解来描述,多个@apiimplicitparam注解需要放在一个@apiimplicitparams注解中。
- @apiimplicitparam注解中虽然可以指定参数是必填的,但是却不能代替@requestparam(required = true),前者的必填只是在swagger2框架内必填,抛弃了swagger2,这个限制就没用了,所以假如开发者需要指定一个参数必填,@requestparam(required = true)注解还是不能省略。
五、如果参数是一个对象,对于参数的描述可以放在实体类中。
@apimodel public class user { @apimodelproperty(value = "用户id") private integer id; @apimodelproperty(value = "用户名") private string username; @apimodelproperty(value = "用户地址") private string address; //getter/setter }
六、效果
附:如果我们的spring boot项目中集成了spring security,那么如果不做额外配置,swagger2文档可能会被拦截,此时只需要在spring security的配置类中重写configure方法,添加如下过滤即可:
@override public void configure(websecurity web) throws exception { web.ignoring() .antmatchers("/swagger-ui.html") .antmatchers("/v2/**") .antmatchers("/swagger-resources/**"); }
以上就是springboot整合swagger2的示例的详细内容,更多关于springboot整合swagger2的资料请关注其它相关文章!
上一篇: 笔记本电脑无线网络连接不上的五大原因分析与解决办法介绍
下一篇: 要不说女人翻脸快
推荐阅读
-
Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码
-
springboot整合EHCache的实践方案
-
SpringBoot返回json和xml的示例代码
-
spring boot整合mybatis+mybatis-plus的示例代码
-
SpringBoot集成阿里巴巴Druid监控的示例代码
-
springboot整合ehcache 实现支付超时限制的方法
-
Springboot中集成Swagger2框架的方法
-
Spring Boot整合Spring Security的示例代码
-
springboot整合rabbitmq的示例代码
-
Spring整合Quartz分布式调度的示例代码