REST API를 개발하던 중 파라미터를 swagger3.0.0 에 명세해야 했습니다.
그런데 경우에 따라 조금씩 다르더라구요.
유형별로 명세 방식을 알아보겠습니다!
1. Path Variable
localhost:8080/userinfo/userid/{userId}/password/{password}
Path Variable 방식으로 들어오는 파라미터는 @Parameter, @PathVariable 어노테이션을 통해 설명과 Variable 종류를 명세해줍니다.
@Operation은 API에 대한 명세입니다.
전
후
2. Query Parameter
localhost:8080/userinfo/userid/{userId}/password/{password}?phoneNo=01012345678&birthY=1996
?물음표 뒤로 들어오는 Query Parameter는 Path Variable 과는 조금 다르게 객체를 만들어서 처리합니다. 하지만 그냥 객체만 추가하고 어노테이션을 추가하지 않으면 swagger 에서 단순히 json 형식으로만 보여줍니다.
그래서 @ParameterObject 를 통해 이 객체도 파라미터라는 것을 알려주고, @Parameter로 명세합니다.
전 (객체만 추가)
후
3. Json body
localhost:8080/userinfo/userid/{userId}/password/{password}
{
"name" : "홍길동"
"region" : "서울시"
}
Json body 로 들어오는 것은 방금 본 Query Parameter 처리 방식과 똑같습니다. @RequestBody 는 swagger를 위한 것은 아니고 body에 있는 데이터를 객체의 변수와 매핑하는데 사용합니다.
전 (객체만 추가)
후
'SpringBoot' 카테고리의 다른 글
[SpringBoot] @Bean, @Autowired, TCP, UDP, URI, HTTP 메소드 (0) | 2024.03.18 |
---|---|
@InjectMocks 한 객체에 given()을 주면 어떻게 될까? (0) | 2023.11.30 |
@RequiredArgsConstructor 와 @AllArgsConstructor (0) | 2023.11.15 |
@Transactional(readOnly = true) 중간에 save(insert) 하기 (0) | 2023.08.03 |
웹 개발 발전 과정 Servlet, JSP, MVC, FrameWork (0) | 2023.01.18 |
댓글