-
Swagger에서 VO/DTO를 표기하는 방법 / The way write VO/DTO in SwaggerBackend/SPRING 2022. 5. 31. 18:57
Controller에서 어떠한 값을 request로 받는지, 어떻게하면 Swagger로 잘 표기하고 싶으실까? 에대한 고민을 하는 개발자분들이 많을 것입니다. 요청의 종류에 따라서 나누어서 설명드리고자 합니다.
1. Get방식의 @RequestParam 일경우
(@RequestParam은 Swagger의 기능이 아니니 다른 포스팅에서 다루도록 하겠습니다.)
(1) @RequestParam을 사용하시는 경우는 아래와 같이 parameter가 간단하신 경우이실 것입니다.
그러니까, 애초에 parameter가 복잡하셨으면 get으로 넘기지는 않으셨을 것이라고 예상됩니다. 복잡하셨으면 post로 class를 묶어서 전송하셨을 것이라고 생각됩니다.
그런 경우, Controller단에서 @ApiParam 이라는 Annotation을 사용해주시면 됩니다.
. . . public getUserInfo( . . @RequestParam @ApiParam(name = "userId", value = "유저의 고유한 id값", required = true, example = "1") long userId ) { . . . }
(물론 인증정보를 가져올때에는 RequestHeader로 token도 같이 넘겨야겠지만 현 포스팅의 주제와 맞지않으니 @ApiParam에만 집중하겠습니다)
2. Post방식
Post 방식의 경우 위에처럼 Controller단에 적어주는것이 아니라, Request Class 로 가셔서 정의해주셔야 합니다
만약 UserInfoRequest 라는 클래스를 하나 만들어서, 해당 형식대로 Client 개발자분에게 data를 받아야된다는 가정하에 예를 들어보겠습니다.
(1) (Class 위) @ApiModle
. . @ApiModel(value="UserInfoRequest", description = "유저 정보 관련 요청") public class UserInfoRequest { . . . }
(2) (변수 하나하나씩, (1)번안에 작성해주시면 됩니다) @ApiProperty
. . @ApiModelProperty( value = "유저의 고유한 id값" , example = "1" , required = true ) long userId; . .
감사합니다^^
'Backend > SPRING' 카테고리의 다른 글
Swagger에서 get방식으로 @requestParam을 넘길때 표기하는 방법 / The way writes param information at Swagger (0) 2022.05.31 스웨거에서 노출되기를 원하지 않는 값들을 감추는 방법 / The way hides api property in Swagger (0) 2022.05.31 Swagger에서 Enum을 표기하는 방법 / The way express Enum in Swagger (0) 2022.05.31 Lombok의 @Builder 기능을 상속받은 class에서도 사용하는 방법 (0) 2022.05.31 Can't find catalina.jar / 카탈리나 jar파일을 찾을 수 없습니다 (0) 2022.05.31