SpringBoot与Vue系列

SpringBoot Swagger2 可视化API

2018-04-23  本文已影响3人  tanoak

在参考了大部分博客中,发现关于Swagger-ui的文档很多,但是要迅速的完成一个Demo还是需要调试,查找文档,所有记录下了这篇文章.

  1. 导入依赖
<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
</dependency>

2.配置

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                        .apiInfo(apiInfo())
                        .select()
                                                      
                        .apis(RequestHandlerSelectors.basePackage("com.tanoak.controller"))//需要扫描的包
                        .paths(PathSelectors.any())
                        .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                        .title("Spring Boot中使用Swagger2构建RESTful APIs")
                        .description("更多Spring Boot相关文章:https://www.jianshu.com/u/39192052658a")
                        .termsOfServiceUrl("https://www.jianshu.com/u/39192052658a")
                        .contact("tanoak")
                        .version("1.0")
                        .build();
    }
}

3.书写Controller

    @GetMapping("json")
    @ApiOperation(value="Map<String,String>", notes="返回MapJson对象")
    @ApiImplicitParam(name = "map", value = "Map形式Json对象", required = true, dataType = "Map")
    public Map<String ,String> toJson(){
        Map<String ,String> map = new HashMap<>() ;
        map.put("name","Jack");
        map.put("site","江西南昌");
        return map ;
    }

常用注解详细说明 ps:这里只有部分,更多请参考官方文档

对象属性    @ApiModelProperty   用在出入参数对象的字段上
协议集描述   @Api    用于controller类上
协议描述    @ApiOperation   用在controller的方法上
Response集   @ApiResponses   用在controller的方法上
Response    @ApiResponse    用在 @ApiResponses里边
非对象参数集  @ApiImplicitParams  用在controller的方法上
非对象参数描述 @ApiImplicitParam   用在@ApiImplicitParams的方法里边
描述返回对象的意义   @ApiModel   用在返回对象类上

访问http://localhost:2001/swagger-ui.html ps:2001是我的端口号,自行更改
到这里就结束了,来张图片,看看效果

运行效果
上一篇 下一篇

猜你喜欢

热点阅读