添加swagger2到springboot

2018-12-27  本文已影响0人  清泉_QingQuan

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);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读