1.添加pom.xml依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2.添加@Configuration配置,swagger里面接口的访问地址可以通过参数host来设置,这样部署到测试环境也可以把接口调通。
@Configuration
@EnableSwagger2
public class Swagger2 {
@Value("${spring.profiles.active}")
private String active;
@Value("${server.port}")
private String port;
@Value("${baseControllerPackage}")
private String baseControllerPackage;
@Bean
public Docket createRestApi() {
if (active.equals("pro")) {
baseControllerPackage = "com.gx.liveshow.null";
}
String host = "127.0.0.1:" + port;
if (active.equals("test")) {
host = "10.25.73.57:8080";
}
return new Docket(DocumentationType.SWAGGER_2)
.host(host)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(baseControllerPackage))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("接口文档")
.description("(1)测试环境BaseURL:http://127.0.0.1:8080/")
.version("1.0")
.build();
}
}
3.添加@Configuration配置
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
4.swagger的使用
@RestController
@RequestMapping("/city_shop")
@Api(description = "城市商家相关的接口")
@Validated
public class CityShopController {
@Autowired
CityShopService cityShopService;
@ApiOperation(value = "获取商家列表", httpMethod = "POST")
@ApiImplicitParams({@ApiImplicitParam(name = "pageNum", value = "分页页码,从1开始", defaultValue = "1", paramType = "query"),
@ApiImplicitParam(name = "pageSize", value = "页数量", defaultValue = "10", paramType = "query")
})
@RequestMapping("/getList")
public PageInfo<CityShop> getList(@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
return cityShopService.getList(pageNum, pageSize);
}
}
网友评论