在生产环境下会有一定的安全问题

时间:2022-05-09 01:45:15

标签:

    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;
  }
}

启动应用并访谒  :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 描述

标签:

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