码迷,mamicode.com
首页 > Windows程序 > 详细

Swagger rest API 描述

时间:2018-04-26 14:02:48      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:code   any   api   第一步   接收   opera   users   res   class   

 

 

1 工作原理

使用Spring Boot开发前、后端分离的项目越来越多,而前、后端往往是由不同的开发人员或团队负责。如果后端开发了一些REST接口,如何将这些接口即快速又准确地描述给前端开发人员呢?

Swagger提供了一种自动扫描生成API接口文档的技术实现

2 集成步骤

第一步,添加Maven依赖如下:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>

第二步,编写配置类;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API文档")
                .description("")
                .termsOfServiceUrl("")
                .version("1.0")
                .build();
    }
}

第三步,编写测试Controller:

@Api(description = "测试")
@RestController @RequestMapping(
"/demo") public class DemoController { @RequestMapping(value = "/user", method = RequestMethod.GET) public Object getUsers(@ApiParam(value = "名称") @RequestParam(required = false) String name) {
    List list
= new ArrayList();
    list.add(name
);
   

    return list;
  }
}

 启动应用并访问  http://localhost:8080/swagger-ui.html

技术分享图片

 

 

3 API注解

Swagger还提供了一些@注解用于详细的对API接口进行描述。

    @Api:修饰整个类,描述Controller的作用。

    @ApiOperation:描述一个类的一个方法,或者说一个接口。

    @ApiParam:单个参数描述。

    @ApiModel:用对象来接收参数。

    @ApiProperty:用对象接收参数时,描述对象的一个字段。

    @ApiResponse:HTTP响应其中一个描述。

    @ApiResponses:HTTP响应整体描述。

    @ApiIgnore:使用该注解忽略这个API。

    @ApiError:发生错误返回的信息。

    @ApiParamImplicit:一个请求参数。

 @ApiParamsImplicit:多个请求参数。

4 安全问题

  这种公开的接口API文档一般只用于开发环境,在生产环境下会有一定的安全问题。此时可以通过在Swagger配置类上添加@Profile({"dev"})注解进行控制,这样Swagger只有在dev这个profile下才会生效。

Swagger rest API 描述

标签:code   any   api   第一步   接收   opera   users   res   class   

原文地址:https://www.cnblogs.com/lovedaodao/p/8951811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!