SpringBoot 통합 Swagger 2 방법

무엇
현재 많은 회사 들 이 앞 뒤 가 분 리 된 개발 모델 을 채택 하고 있 으 며,전단 과 백 엔 드 의 업 무 는 서로 다른 엔지니어 가 완성 하고 있다.이러한 개발 모델 에서 제때에 업데이트 되 고 완전한 Rest API 문 서 를 유지 하면 우리 의 업무 효율 을 크게 향상 시 킬 것 이다.전통 적 인 의미 에서 문 서 는 백 엔 드 개발 자가 수 동 으로 작성 한 것 입 니 다.이런 방식 은 문서 의 신속 성 을 확보 하기 어렵 다 는 것 을 잘 알 고 있 습 니 다.이런 문 서 는 시간 이 지나 면 참고 의 미 를 잃 고 오히려 우리 의 의사 소통 원 가 를 높 일 수 있 습 니 다.Swagger 는 우리 에 게 새로운 API 문 서 를 유지 하 는 방식 을 제공 했다.
2.왜 사용 합 니까?
1.코드 가 변경 되면 문 서 는 코드 에 따라 변 하고 소량의 주석 Swagger 만 있 으 면 코드 에 따라 API 문 서 를 자동 으로 생 성하 여 문서 의 실시 성 을 확보 할 수 있 습 니 다.
2.크로스 언어,Swagger 는 40 여 개 언어 를 지원 합 니 다.
3.Swagger UI 는 상호작용 이 가능 한 API 문 서 를 보 여 줍 니 다.우 리 는 문서 페이지 에서 API 호출 을 직접 시도 하여 복잡 한 호출 매개 변 수 를 준비 하 는 과정 을 줄 일 수 있 습 니 다.
4.문서 규범 을 관련 도구 에 가 져 올 수 있 습 니 다(예 를 들 어 Postman,SoapUI).이 도구 들 은 자동 으로 자동화 테스트 를 만 들 것 입 니 다.
어떻게
1.프로젝트 pom.xml 에 Swagger 2 와 관련 된 의존 도 를 추가 합 니 다.

<!--swagger2  -->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.4.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.4.0</version>
    </dependency>
    <dependency>
      <groupId>com.github.xiaoymin</groupId>
      <artifactId>swagger-bootstrap-ui</artifactId>
      <version>1.6</version>
    </dependency>
2.새로운 Swagger 2 설정 클래스

package com.zhouhong.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * @ClassName: Swagger2
 * @Description:
 * @Author:   
 * @NickName: Tom-shuhu
 * @Date: Created in 2020/12/15
 **/
@Configuration
@EnableSwagger2
public class Swagger2 {
  //  http://localhost:8088/swagger-ui.html    
  //  http://localhost:8088/doc.html    
  //  swagger2    
  @Bean
  public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2) //  api   swagger2
      .apiInfo(apiInfo())            //    api      
        .select().apis(RequestHandlerSelectors
            .basePackage("com.zhouhong.controller")) //       controller
        .paths(PathSelectors.any())      
        .build();
  }
  private ApiInfo apiInfo(){
    return new ApiInfoBuilder()
        .title("Tom-shushu      api") //    
        .contact(new Contact("  ", //  
            "www.zhouhong.icu",  
            "[email protected]")) //   
        .description("Tom-shushu    api  ")//    
        .version("1.0.0")//     
        .termsOfServiceUrl("www.zhouhong.icu")//    
        .build();
  }
}
문서 설정 설명:
a.모든 인터페이스 에 API 문 서 를 생 성 합 니 다.이런 방식 은 인터페이스 방법 에 주석 을 달 필요 가 없습니다.편리 한 동시에 주석 이 추가 되 지 않 았 기 때문에 생 성 된 API 문서 도 주석 이 없고 가 독성 이 높 지 않 습 니 다.

 @Bean
  public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        //       API  
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build();
  }
b.현재 설정 한 패키지 아래 contrller 에 API 문 서 를 생 성 합 니 다.

.apis(RequestHandlerSelectors.basePackage("com.troila"))
c.@Api 주석 이 있 는 Controller 에 API 문 서 를 생 성 합 니 다.

.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
d.@ApiOperation 주석 이 있 는 방법 으로 API 문 서 를 생 성 합 니 다.

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
3.흔히 볼 수 있 는 주해 안내

@Api:     ,  Controller   
 @ApiOperation:          ,       
 @ApiParam:      
 @ApiModel:          
 @ApiProperty:          ,         
 @ApiResponse:HTTP    1   
 @ApiResponses:HTTP      
 @ApiIgnore:         API
 @ApiError :         
 @ApiImplicitParam:      
 @ApiImplicitParams:       
4.프 리 젠 테 이 션(위의 첫 번 째 설정 을 편리 하 게 사용 합 니 다)
1.원래 경로 로 접근

2.원래 경로 디 버 깅

3.doc 모드 접근

4.doc 모드 디 버 깅

SpringBoot 통합 Swagger 2 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 통합 Swagger 2 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기