SpringBoot配置Swagger
来源:互联网 发布:淘宝网月销量是真的吗 编辑:程序博客网 时间:2024/06/01 22:58
目录
- 目录
- Swagger
- Maven依赖
- Swagger配置
- Swagger注解
- 示例
- 代码
- 文档效果
- Swagger文档Token机制的优化
- 示例
Swagger
Swagger UI允许任何人 - 无论是您的开发团队还是最终消费者 - 可视化并与API资源进行交互,而无需执行任何实施逻辑。它是从您的Swagger规范自动生成的,可视化文档使后端实现和客户端消耗变得容易。
Maven依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.5.0</version> </dependency>
Swagger配置
@Configuration@EnableSwagger2public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.arthur.demo.controller")) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("API Title") .description("API Description") .termsOfServiceUrl(" API terms of service") .version("1.0.0") .build(); }}
Swagger注解
说明:
具体其他的注解,查看:
https://github.com/swagger-api/swagger-core/wiki/Annotations#apimodel
示例
代码
package com.arthur.demo.controller;import io.swagger.annotations.Api;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiImplicitParams;import io.swagger.annotations.ApiOperation;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;/** * @Author: Arthur Han * @Description: * @CreateTime: 2017/9/18 20:29 * @Modified By: * @Version: V1.0.0 */@RestController@Api(description = "登陆")public class LoginController { @ApiOperation("用户登陆") @ApiImplicitParams({@ApiImplicitParam(name = "userName",value = "用户名",required = true,dataType = "String",paramType="query"), @ApiImplicitParam(name = "password",value = "密码",required = true,dataType = "String",paramType="query")}) @PostMapping(value = "/login") public ResponseEntity Login(@RequestParam String userName, @RequestParam String password){ if (userName.equals("admin")&&password.equals("admin")){ return ResponseEntity.ok("OK"); }else{ return ResponseEntity.ok("Fail"); } }}
文档效果
Swagger文档Token机制的优化
对于Restful风格的接口,身份信息都是放在请求头中,通过拦截器来读取Header中的Token信息,进行身份验证,但是我们在Swagger中怎么设置请求头参数,我们需要在每一个方法的中都加一个Header参数吗?当然不是。Swagger中的ParameterBuilder可以为我们所有的接口文档加上Token参数。
示例
修改SwaggerConfig的配置,加入Token参数。
@Bean public Docket createRestAPI(){ ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<Parameter>(); tokenPar.name("token") .defaultValue("user-eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbjAifQ.EzOtp4tB1dD7xTGWIc5Dlceoi7undj9ikhDdkuz23N_te3iLoE61nqSd-X-9hmC_ERIdKMXu62ZHbuV4vqWzhQ") .description("令牌") .modelRef(new ModelRef("string")).parameterType("header").required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.arthur.demo.controller")) .paths(PathSelectors.any()) .build() .globalOperationParameters(pars) .apiInfo(apiInfo()); }
效果如下
文档中就多了一个Token参数,我们可以为其设置默认值,方便接口测试。
代码Demo示例
http://download.csdn.net/download/u011212427/9984660
阅读全文
0 0
- Swagger配置(SpringMVC、SpringBoot)
- SpringBoot配置Swagger
- Swagger配置:Maven+SpringBoot+jdk1.
- springboot + swagger
- springboot + swagger
- springboot swagger
- Swagger+SpringBoot
- SpringBoot集成Swagger
- springboot整合swagger
- springboot中集成swagger
- 【Spring Boot】springboot + swagger
- springboot + swagger 注解
- Swagger搭配Springboot使用
- springboot + swagger注解
- SpringBoot 集成Swagger
- springboot整合swagger
- SpringBoot集成Swagger
- SpringBoot整合Swagger
- 区分rtp和rtcp的简单
- hadoop、storm和spark的区别、比较
- 阿里云ECS服务器优惠价低至199元
- EDA与VHDL作业(4)
- 重排数列
- SpringBoot配置Swagger
- 使用springboot时,@Scheduled定时器遇到的问题
- 英语语法初级(一)名词的可数与不可数
- Java转义字符
- hdu 2769
- Hive典型表内除重的写法
- C语言中字符串与数字间的转换
- 对于javascript块的概念引申的一些东西
- tomcat目录结构与配置文件,web应用的目录结构