본문 바로가기

Back

[Swagger] 스웨거 사용하기 (설정 및 적용)

 

1. Swagger 설정 (config)

gradle설정

// build.gradle

// actuator 설정
implementation 'org.springframework.boot:spring-boot-starter-actuator'

 

property설정

actuator, swagger 설정

### application.properties

# actuator
management.endpoints.web.base-path=/api/actuator
# endpoint health만 노출
management.endpoints.web.exposure.include=health
# detail (안보여줘도 됨)
#management.endpoint.health.show-details=always

# swagger
springdoc.api-docs.path=/swagger/api-docs
springdoc.swagger-ui.path=/swagger/swagger.html
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tagsSorter=alpha

 

 

 

2. Swagger 작성

contoller 작성

// HelloContoller.java

public class HelloContoller {

    @Operation(summary = "리스트 조회",
            description = "Permit: 관리자")
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "결과 전달", content = @Content(array = @ArraySchema(schema = @Schema(implementation = Response.class)))),
            @ApiResponse(responseCode = "401", description = "인증 토큰이 없거나 인증 토큰 이상", content = @Content),
            @ApiResponse(responseCode = "403", description = "토큰의 권한이 리소스에 대하여 적합한 권한을 소유하고 있지 않음", content = @Content),
            @ApiResponse(responseCode = "404", description = "존재 하지 않을 경우", content = @Content),})
    @GetMapping(value = "/api/{id}/list")
    public List<Response> getListById(@Parameter(description = "Id", example = "1")
                                             @PathVariable Long id) {
        List<Response> responses = new ArrayList<Response>();
        Response response = new Response();
        responses.add(response);
        return responses;
    }
}

 

 

Response / Request 작성

// Response.java

@Getter
@Setter
public class Response {

    private Long id;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;

    @Schema(description = "name에 대한 설명", example="Rabbit")
    private String name;

}