博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot中使用Swagger2构建RESTful APIs
阅读量:3523 次
发布时间:2019-05-20

本文共 3496 字,大约阅读时间需要 11 分钟。

pom.xml文件

io.springfox
springfox-swagger2
2.2.2
io.springfox
springfox-swagger-ui
2.2.2

controller类

@RestController@RequestMapping(value = "/api")public class UserRestController {		private  final Logger logger = LoggerFactory.getLogger(this.getClass());		/**	 * @ApiOperation注解来给API增加说明、通过@ApiImplicitParams注解来给参数增加说明。	 * value 是标题,notes是详细说明	 * @param user	 * @return	 */	@ApiOperation(value="创建用户", notes="根据User对象创建用户")    @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")	@PostMapping("/user")    public boolean insert(@RequestBody User user) {		logger.info("开始新增用户信息!请求参数:{}",user);        return true;    }}
  • 下列是Swagger的一些注解说明,更详细的可以查看官方的wiki文档。    @Api:将类标记为Swagger资源。    @ApiImplicitParam:表示API操作中的单个参数。    @ApiImplicitParams:一个包装器,允许列出多个ApiImplicitParam对象。    @ApiModel:提供有关Swagger模型的其他信息,比如描述POJO对象。    @ApiModelProperty: 添加和操作模型属性的数据。    @ApiOperation: 描述针对特定路径的操作或通常是HTTP方法。    @ApiParam: 为操作参数添加其他元数据。    @ApiResponse: 描述操作的可能响应。    @ApiResponses: 一个包装器,允许列出多个ApiResponse对象。    @Authorization: 声明要在资源或操作上使用的授权方案。    @AuthorizationScope: 描述OAuth2授权范围。    @ResponseHeader: 表示可以作为响应的一部分提供的标头。    @ApiProperty: 描述POJO对象中的属性值。    @ApiError : 接口错误所返回的信息    ...

    SpringBoot使用Swagger其实很简单,只需要在启动的时候添加@EnableSwagger2注解开启,然后再使用@Bean注解初始化一些相应的配置即可,比如编辑Swagger UI界面的信息,指定Swagger负责扫描的package等等。

  • package com.pancm.config;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.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;/** * * @Title: Swagger2* @Description: * Swagger2配置* @Version:1.0.0  * @author pancm* @date 2018年5月29日 */@Configuration@EnableSwagger2public class Swagger2 {    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.pancm"))                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2构建RESTful APIs")                .description("测试")                .termsOfServiceUrl("http://www.panchengming.com/")                .contact("xuwujing")                .version("1.0")                .build();    }}

    完成示例:

补充:swagger搭配shiro使用注意事项

需要在权限过滤规则中添加swagger过滤

/**     * 加载ShiroFilter权限控制规则     */    private void loadShiroFilterChain(ShiroFilterFactoryBean factoryBean) {        Map
filterChainMap = new LinkedHashMap
(); filterChainMap.put("/logout.do", "anon"); filterChainMap.put("/swagger-ui.html", "anon"); filterChainMap.put("/swagger-resources/**", "anon"); filterChainMap.put("/v2/api-docs/**", "anon"); filterChainMap.put("/webjars/**", "anon"); filterChainMap.put("/**", "authc"); factoryBean.setFilterChainDefinitionMap(filterChainMap); }

 正式项目时如何禁用swagger

#配置文件中添加配置项#是否激活 swagger true or falseswagger.is.enable=true

 swagger配置项中添加禁用设置

 

 

 

转载地址:http://cyrqj.baihongyu.com/

你可能感兴趣的文章
Java基础入门 Calendar类
查看>>
Java基础入门 DateFormat类
查看>>
Java基础入门 Window类及Panel类
查看>>
Java基础入门 AWT事件处理
查看>>
Java基础入门 鼠标事件
查看>>
Java基础入门 键盘事件
查看>>
Java基础入门 GridLayout
查看>>
JavaEE Bean的两种常用作用域 singleton(单例)和prototype(原型)
查看>>
MySQL 数据库索引
查看>>
JavaEE Spring与MyBatis的整合之传统DAO方式整合(教材学习笔记)
查看>>
JavaEE MyBatis与Spring的整合——基于mapper接口方式开发(教材学习笔记)
查看>>
JavaWeb 使用Cookie实现——显示用户上次访问时间(教材学习笔记)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(五)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(六)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(七)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(八)
查看>>
中国大学MOOC—陆军工程大学数据结构MOOC习题集(2018秋)7-3 中位数
查看>>
Java发送邮件 注册成功发送邮件
查看>>
Mybatis的简单使用(增删改查),解决数据库字段名和实体类映射属性名不一致的问题
查看>>
Mybatis配置log4j文件 分页查询(limit,rowBounds)
查看>>