hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

[Spring + Swagger] Swagger 사용
Development/Spring

[Spring + Swagger] Swagger 사용

swagger는 controller에 @RestController annotation을 붙인 것들에 대해, api 명세 목록을 제공해주는 명세 자동화 툴이다.

 

build.gradle

	implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
	implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'

이것들 추가한다. 다음으로 config를 만들자.

 

SwaggerConfig.java

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        // paramter를 만든다. 나의 경우에는 login을 Authorization header로 넣기 때문에 이렇게 만든다.
        ParameterBuilder aParameterBuilder = new ParameterBuilder();
        aParameterBuilder.name("Authorization") //헤더 이름
                .description("Access Token") //설명
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();

        List<Parameter> aParameters = new ArrayList<>();
        aParameters.add(aParameterBuilder.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .globalOperationParameters(aParameters)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.bizkicks.backend"))
                .paths(PathSelectors.any())
                .build();

    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Bizkicks Spring Boot REST API")
                .version("1.0.0")
                .description("Bizkicks swagger api 입니다.")
                .build();

    }
}

 

 config는 2개 함수를 구현하면 된다. api(), appInfo(). api에는 어떤 parameter를 사용할 거고, 어떤 package 안에 있는 것을 넣어줄 것인지, 어떤 appInfo를 담을지이다.
 apiInfo는 title, version, description을 담으면 된다.

 이러면 끝이다.

 {서비스 IP}:{포트}/swagger-ui.html

 



 로 접속하면 아래와 같이 나온다.

 

'Development > Spring' 카테고리의 다른 글

[Spring] Spring exception handler 추가 - ambiguous handler  (0) 2022.10.05
[Spring] slf4j를 이용한 spring logging  (0) 2022.10.05
[Spring] Custom Exception Handler  (0) 2022.10.05
[Spring + Jwt] Spring Boot + Spring Security + Redis + Jwt를 이용한 회원가입 및 로그인  (0) 2022.10.05
[Spring + Redis] Spring Redis 연동  (0) 2022.10.04
    hyelie
    hyelie

    티스토리툴바