Springcloud整合Swagger 界面查看Restful API
说明:
这里使用的版本:springfox-swagger2(2.6.1)springfox-swagger-ui (2.6.1)
这里是说明常用注解的含义和基本用法
- 与Spring Cloud 微服务的集成
常用注解:
- @Api()用于类;
表示标识这个类是swagger的资源
@ApiOperation()用于方法;
表示一个http请求的操作@ApiParam()用于方法,参数,字段说明;
表示对参数的添加元数据(说明或是否必填等)@ApiModel()用于类
表示对类进行说明,用于参数用实体类接收@ApiModelProperty()用于方法,字段
表示对model属性的说明或者数据操作更改@ApiIgnore()用于类,方法,方法参数
表示这个方法或者类被忽略@ApiImplicitParam() 用于方法
表示单独的请求参数@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam
1.启动类
@SpringBootApplication
@EnableDiscoveryClient //开启服务发现
//@EnableCircuitBreaker //开启熔断器
//@EnableFeignClients //开启声明式的web service客户端
//@EnableTransactionManagement //开启声名式事务
//@EnableCaching //启用缓存
@ComponentScan(basePackages={"com.cloud.paas"})
//@MapperScan("com.cloud.paas.portal.persistence") //扫描Mapper
public class PortalApplication {
/**
* @Title: main
* @Description: 启动类
* @param args
*/
public static void main(String[] args) {
new SpringApplicationBuilder(PortalApplication.class).web(true).run(args);
}
}
2.加入swagger的相关依赖
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
3.初始化Swagger2的配置
package com.cloud.paas.portal.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import com.google.common.base.Predicates;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @ClassName: Swagger2
* @Description: TODO
* @author: huangyan
* @date:2017年9月13日 下午2:15:43
*/
@Configuration
@ComponentScan(basePackages = { "com.cloud.paascontroller" })//配置controller路径
@EnableSwagger2
@SuppressWarnings({"unchecked","deprecation"})
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.paths(Predicates.or( //这里添加你需要展示的接口
PathSelectors.ant("/account/**"),
PathSelectors.ant("/auth/**"),
PathSelectors.ant("/user/**"),
PathSelectors.ant("/test/**")
)
)
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Cloud")
.description("说明RESTful APIs")
.contact("330405457@qq.com")
.version("1.0")
.build();
}
}
4.controller中加入swagger相应的注释
@RestController
@RequestMapping("account")
@CrossOrigin
@Api(description="账户接口")
public class AccountNumberController extends BaseController{
@Resource
AccountNumberService accountNumberService;
@ApiOperation(value="查询账户列表信息",notes="查询不同的条件,查询出账户的列表信息")
@RequestMapping(value="/list",method=RequestMethod.POST)
public Map<String,Object> list(@RequestBody AccountNumberCondition accountNumberCondition) {
Map<String,Object> result = new HashMap<String,Object>();
result.put("data", accountNumberService.list(accountNumberCondition));
result.put("total", accountNumberCondition.getTotalRecord());
return result;
}
@ApiOperation(value="查询单个账户信息",notes="根据账户id,查询出单个账户详细信息")
@RequestMapping(value="/get",method=RequestMethod.POST)
public AccountNumber get(@RequestBody String accountNumberId) {
return accountNumberService.get(accountNumberId);
}
}
5.浏览器中访问
http://localhost:6002/swagger-ui.html
如下图: