Swagger 를 사용 하여 문서 자동 생 성
4202 단어 보조 도구 시리즈
Swagger 는 RESTful 스타일 의 웹 서 비 스 를 생 성, 설명, 호출, 시각 화 하 는 규범 적 이 고 완전한 프레임 워 크 입 니 다.
Springfox 의 전신 은 swagger - springmvc 로 원본 을 여 는 API doc 프레임 워 크 입 니 다. 저희 Controller 의 방법 을 문서 로 보 여 드릴 수 있 습 니 다. Swagger 기반 입 니 다.
홈 페이지:http://swagger.io/
원본 주소:http://springfox.github.io/springfox/
Swagger 사용
첫 번 째 단계: 가 져 오기 의존
io.springfox
springfox-swagger2
2.7.0
io.springfox
springfox-swagger-ui
2.7.0
STEP 2: 오픈
@ Enableswagger 2 주석
@SpringBootApplication
@RestController
@EnableSwagger2
public class DemoApplication {
세 번 째 단계: 접근http://localhost:8080/swagger-ui.html
모든 controller 의 API 를 차단 한 경우, 고정된 package, url 의 API 를 어떻게 차단 합 니까?
STEP 4: url 맞 춤 형 API
모든 인 터 페 이 스 를 한꺼번에 차단 할 수도 있 고, 그룹 을 나 누 어 차단 할 수도 있다.
@Configuration
public class Swagger2Configuration {
/*@Bean
public Docket accessToken() {
return new Docket(DocumentationType.SWAGGER_2).groupName(" ")//
.select() // api document
.apis(RequestHandlerSelectors.basePackage("com.zto.springboot.controller")) //
.paths(PathSelectors.regex("/web/.*"))//
.build() //
.apiInfo(apiInfo()); //
}*/
@Bean
public Docket accessToken2() {
return new Docket(DocumentationType.SWAGGER_2).groupName(" ")//
.select() // api document
.apis(RequestHandlerSelectors.basePackage("com.zto.security.web.controller")) //
//.paths(PathSelectors.regex("/user/.*"))//
.paths(PathSelectors.any()) //
.build() //
.apiInfo(apiInfo()); //
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxx ")//
.description("xxx xxx xxx xxx ")//
.contact(new Contact("xxx", "http://www.baidu.com","[email protected]"))//
//.termsOfServiceUrl("http://www.roncoo.com") // URL
// .license("Apache License Version 2.0")//
// .licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE")//
.version("1.0")//
.build();
}
}
STEP 5: 제어 층 주해 사용 설명
@Api: , Controller
@ApiOperation: ,
@ApiParam:
@ApiModel:
@ApiProperty: ,
@ApiResponse:HTTP 1
@ApiResponses:HTTP
@ApiIgnore: API
@ApiError :
@ApiParamImplicitL:
@ApiParamsImplicit
@ApiOperation
@ApiOperation(value = " ", notes = " ")
@PostMapping
public User create(@Valid @RequestBody User user, BindingResult errors) {
return user;
}
@ApiModelProperty
public class UserQueryCondition { private String username; @ApiModelProperty(value = " ") private int age; @ApiModelProperty(value = " ") private int ageTo; private String xxx; }
@ApiParam@ApiOperation(value = " ", notes = " ") @DeleteMapping("/{id:\\d+}") public void delete(@ApiParam(" id") @PathVariable String id) { System.out.println(id); }
최종 효과