赞
踩
在pom.xml添加Swagger2依赖
- <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>
- <dependency>
- <groupId>com.github.caspar-chen</groupId>
- <artifactId>swagger-ui-layer</artifactId>
- <version>1.1.3</version>
- </dependency>
在configuration包下增加SwaggerConfig类
- package com.iot.simmanager.configuration;
-
- 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;
-
-
- /**
- * <p>Swagger2配置类</p>
- * @author lenny
- * @date 20210425
- * @version 1.0.0
- */
- @Configuration
- @EnableSwagger2
- public class SwaggerConfig {
- /**
- * 创建API应用
- * apiInfo() 增加API相关信息
- * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
- * 本例采用指定扫描的包路径来定义指定要建立API的目录。
- *
- * @return
- */
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage("com.iot.simmanager.controller"))
- .paths(PathSelectors.any())
- .build()
- .useDefaultResponseMessages(false);
-
- }
-
- /**
- * 创建该API的基本信息(这些基本信息会展现在文档页面中)
- * 访问地址:http://项目实际地址/swagger-ui.html
- *
- * @return
- */
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("SIM Manager APIs")
- .description("SIM卡管理接口文档")
- .termsOfServiceUrl("https://blog.csdn.net/qq_17486399")
- .version("0.0.1")
- .build();
- }
- }
3.在Controller增加参数注解
- package com.iot.simmanager.controller;
-
- import com.iot.simmanager.model.AdminAgent;
- import com.iot.simmanager.service.AdminAgentService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.util.List;
-
- /**
- * @author HyoJung
- */
- @Api(tags = "公司管理")
- @RestController
- @RequestMapping("/agent")
- public class AdminAgentController {
- @Autowired
- private AdminAgentService adminAgentService;
-
- @ApiOperation(value = "查询公司列表", notes = "查询公司列表")
- @PostMapping(value = "queryAdminAgentList")
- public List<AdminAgent> queryAdminAgentList(){
- try {
- List<AdminAgent> adminAgentList = adminAgentService.queryAdminAgentList();
- return adminAgentList;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- @ApiOperation(value = "查询公司列表带参数", notes = "查询公司列表带参数")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "key",value = "查询条件"),
- @ApiImplicitParam(name = "pageNum",value = "当前页",required = true),
- @ApiImplicitParam(name = "pageSize",value = "每页显示条数",required = true)
- })
- @PostMapping(value = "queryAdminAgentListParam")
- public List<AdminAgent> queryAdminAgentListParam(String key, @RequestParam int pageNum, @RequestParam int pageSize){
- try {
- List<AdminAgent> adminAgentList = adminAgentService.queryAdminAgentList();
- return adminAgentList;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
@Api注解:使用在类上,表明是swagger资源,@API拥有两个属性:value、tags;
生成的api文档会根据tags分类,直白的说就是这个controller中的所有接口生成的接口文档都会在tags这个list下;tags如果有多个值,会生成多个list,每个list都显示所有接口
@ApiOperation:使用于在方法上,表示一个http请求的操作,属性比较多,常用的有两个
value用于方法描述
notes用于提示内容
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
dataType:参数类型,默认String,其它值dataType="Integer"
defaultValue:参数的默认值
除此之外还有很多其他注解,可以参考官方文档查看
可以在Debug页面进行接口在线测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。