Spring Swagger
2023. 4. 3. 17:32ㆍSpring
728x90
스웨거
REST API를 문서화하는 도구
build.gradle 추가
implementation 'org.springdoc:springdoc-openapi-ui:1.6.6'
Config 파일 생성
package com.example.yutnoribackend.configuration;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi publicApi(){
return GroupedOpenApi
.builder()
.group("v1-definition") //group 이름 설정
.pathsToMatch("/api/**") // 적용할 api주소
.build();
}
// swagger 화면에서 표시 정보
@Bean
public OpenAPI springShopOpenAPI(){
return new OpenAPI()
.info(new Info().title("Yut-Nori API")
.description("Yut-Nori 프로젝트 API 명세")
.version("v0.0.1"));
}
}
Controller에서 적용
@Tag(name = "posts", description = "게시물 API")
@RestController
@RequestMapping("/api/posts")
@RequiredArgsConstructor
public class PostsController {
@Operation(summary = "get posts", description = "지역에 대한 posts들 가져오기")
@ApiResponses({
@ApiResponse(responseCode = "200", description = "OK", content = @Content(schema = @Schema(implementation = PostsResponseDto.class))),
@ApiResponse(responseCode = "400", description = "BAD REQUEST"),
@ApiResponse(responseCode = "404", description = "NOT FOUND"),
@ApiResponse(responseCode = "500", description = "INTERNAL SERVER ERROR")
})
@Parameters({
@Parameter(name = "province", description = "시", example = "경기도"),
@Parameter(name = "city", description = "도", example = "고양시"),
@Parameter(name = "hashtag", description = "검색한 해시태그", example = "['#자장면', '#중국집']")
})
@ResponseBody
@GetMapping( "")
public PostsResponseDto getPosts(
@RequestParam(value = "province") String province,
@RequestParam(value = "city") String city,
@RequestParam(value = "hashtag", required = false) @Nullable String hashtag
) {
return new PostsResponseDto(1);
}
}
확인
http://localhost:8080/swagger-ui/index.html
- Srping Security로 인해 로그인 창이 뜰 경우
- Id : user
- pw :
참고자료
https://velog.io/@jeong-god/Spring-boot-Swagger-API-연동하기#controller-설정
'Spring' 카테고리의 다른 글
SpringSecurity_CORS 설정 (0) | 2023.04.10 |
---|---|
Spring Security Swagger 예외처리 (0) | 2023.04.03 |
Spring Security (0) | 2023.04.03 |
JPA Mapping (0) | 2023.03.31 |
GenerationType (0) | 2023.03.31 |