티스토리 뷰
반응형
1. build.gradle에 의존성 추가
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
2. application.yml 설정
springdoc:
swagger-ui:
# 각 API의 그룹 표시 순서
# path, query, body, response 순으로 출력
groups-order : DESC
# 태그 정렬 순서
# 알파벳 순 정렬
tags-sorter: alpha
# 컨트롤러 정렬 순서
# method는 delete - get - patch - post - put 순으로 정렬
operations-sorter: method
# swagger-ui default url인 petstore html의 비활성화 설정
disable-swagger-default-url: true
# swagger-ui에서 try 했을 때 request duration을 알려주는 설정
display-request-duration: true
# 모델 확장 깊이를 2단계로 설정
default-models-expand-depth: 2
# 개별 API 호출의 모델 확장 깊이를 2단계로 설정
default-model-expand-depth: 2
api-docs :
# OpenAPI 명세서의 경로를 /api/docs로 설정
# 기본값 : /v3/api-docs
path: /api-docs
# Spring Actuator의 엔드포인트를 Swagger에 표시
show-actuator: true
# API에서 사용할 기본 미디어 유형을 application/json으로 설정
default-consumes-media-type: application/json
default-produces-media-type: application/json
# Swagger UI에서 출력 포맷을 pretty-print 방식으로 설정
writer-with-default-pretty-printer: true
# Swagger API에서 Spring의 ModelAndView 객체를 허용
model-and-view-allowed: true
# Swagger 문서에 포함할 경로 패턴을 지정
paths-to-match: /**
3. SwaggerConfig 생성(JWT 기준)
package com.ssu.ssuketing.common;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
private static final String BEARER_TOKEN_PREFIX = "Bearer";
@Bean
public OpenAPI openAPI(){
// API가 JWT 인증을 요구
String securityJwtName = "JWT";
SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityJwtName);
// Swagger에서 사용하는 보안 스키마(인증 방식)를 정의
// SecurityScheme.TYPE.HTTP 타입의 Bearer 토큰 인증 방식을 사용, Bearer 포맷으로 JWT를 지정
Components components = new Components()
.addSecuritySchemes(securityJwtName, new SecurityScheme()
.name(securityJwtName)
.type(SecurityScheme.Type.HTTP)
.scheme(BEARER_TOKEN_PREFIX)
.bearerFormat(securityJwtName)
);
return new OpenAPI()
.addSecurityItem(securityRequirement)
.components(components);
}
}
4. Controller 단에서 설정 예시
5. DTO 단에서 설정 예시
6. 실행 ⇒ http://localhost:8080/swagger-ui/index.html 접속
반응형
'Back-end > Spring' 카테고리의 다른 글
[Spring/스프링] Spring boot email 보내기 (0) | 2024.10.07 |
---|---|
[Spring/스프링] Spring boot QueryDSL 사용하기 (0) | 2024.09.30 |
[Spring/스프링] - 스프링 부트 페이지내이션 /Pageable (0) | 2024.09.13 |
[Spring/스프링] 스프링 부트 파일 업로드 및 화면 출력 (0) | 2024.09.05 |
[Spring/스프링] Port 8080 is already in use 에러 해결 방법 (4) | 2024.09.03 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 스택
- js
- 에라토스테네스의 체
- 우선순위 큐
- java
- C++
- html
- Do it!
- 자바
- 유니온 파인드
- 알고리즘
- HTML5
- DFS
- 이분 매칭
- 유클리드 호제법
- 백준 풀이
- 투 포인터
- 자바스크립트
- 카운팅 정렬
- DP
- 반복문
- 세그먼트 트리
- C++ Stack
- 백준
- c++ string
- 스프링 부트 crud 게시판 구현
- 자료구조
- BFS
- 알고리즘 공부
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함