SpringBoot 통합 Swagger 2 온라인 API 문서 구축 코드 상세 설명

제1 부분:코드 통합
pom.xml

<!--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>
swagger 2 설정 클래스

package com.liud.demo.config;

import io.swagger.annotations.ApiOperation;
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;

/**
 * TODO
 * swagger2   
 * @author liud
 * @version 1.0
 */

@Configuration
@EnableSwagger2
public class Swagger2 {
  //  swagger2    
  @Bean
  public Docket createRestApi(){
    return new Docket(DocumentationType.SWAGGER_2) //  api   swagger2
        .apiInfo(apiInfo())            //    api      
        .select()
        //.apis(RequestHandlerSelectors.basePackage("com.liud.demo.controller")) //       controller
        //.apis(RequestHandlerSelectors.any()) //       API  
        //.apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) //  @Api   Controller  API  
        .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //  @ApiOperation       API  
        .paths(PathSelectors.any())
        .build();
  }

  //api    
  private ApiInfo apiInfo(){
    return new ApiInfoBuilder()
        .title("SpringBootDemo     API") //    
        .contact(new Contact("liud", //  
            "",
            "")) //   
        .description("SpringBootDemo     API")//    
        .version("1.0.0")//     
        .termsOfServiceUrl("")//    
        .build();
  }
}
Controller

package com.liud.demo.controller;

import com.liud.demo.service.HelloService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * TODO
 *
 * @author liud
 * @version 1.0
 */
@RestController
@Api(tags = {"hello    "})
public class HelloController {
  @ApiOperation(value = "             ")
  @RequestMapping(value = "/getuserinfo",method = RequestMethod.POST)
  public String getUserInfo(HttpServletRequest request,
               @ApiParam(name="username",value = "   ",required = true) String username){
    return "     :"+username+",           !";
  }
}
두 번 째 부분 은 ① 원래 경로 모드 를 사용한다.
브 라 우 저 에 url 입력:
http://{ip}:{port}/swagger-ui.html#/
나의 주소:http://127.0.0.1:8081/swagger-ui.html
在这里插入图片描述
② 문서 모드
브 라 우 저 에 url 입력:
http://{ip}:{port}/doc.html
나의 주소:http://127.0.0.1:8081/doc.html
在这里插入图片描述
제3 부분 swagger 2 상용 주해
자주 사용 하 는 주석:
@Api()는 클래스 에 사 용 됩 니 다.
이 종 류 는 swagger 의 자원 임 을 나타 낸다.
tagsC 설명
valueC 도 tags 로 대체 할 수 있 음 을 설명 합 니 다.
하지만 tags 에 여러 값 이 있 으 면 여러 list 가 생 성 됩 니 다.
在这里插入图片描述
효과:
在这里插入图片描述
@ApiOperation()방법 에 사용 하기;
http 요청 동작 표시
value 방법 설명 에 사용
notes 알림 내용 에 사용
tags 는 다시 그룹 을 나 눌 수 있 습 니 다(상황 에 따라 사용)
@Apiparam()은 방법,파라미터,필드 설명 에 사 용 됩 니 다.
매개 변수 에 메타 데이터 추가(설명 또는 필수 여부 등)
namec 매개 변수 이름
valueC 매개 변수 설명
required C 필수 여부

@ApiParam(name="username",value = "   ",required = true) String username
효과:
在这里插入图片描述
  • @ApiModel()클래스 에 사용
  • 클래스 에 대한 설명 을 표시 하고 매개 변 수 는 실체 클래스 로 수신
  • @ApiModelproperty()방법,필드
  • 에 사용
  • model 속성 에 대한 설명 이나 데이터 조작 변경
  • @ApiIgnore()는 클래스,방법,방법 파라미터
  • 에 사 용 됩 니 다.
  • 이 방법 이나 클래스 가 무시 되 었 음 을 나타 낸다
  • @ApiImplicitParam()방법 에 사용
  • 단독 요청 매개 변수 표시
  • @ApiImplicitParams()방법 에 사용 되 며,@ApiImplicitParam
  • 을 여러 개 포함 합 니 다.
    SpringBoot 통합 Swagger 2 온라인 API 문서 구축 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 통합 Swagger 2 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기