From b4bf708d8e448baca3fd1926dbaa3975dd8183d7 Mon Sep 17 00:00:00 2001 From: ttttkii913 Date: Wed, 24 Jul 2024 18:10:24 +0900 Subject: [PATCH] =?UTF-8?q?Feat:=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=84=A4?= =?UTF-8?q?=EB=AA=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/SwaggerConfig.java | 4 +- .../curation/api/CurationController.java | 38 ++++++++++++++++--- .../like/api/LikeController.java | 17 ++++++++- .../location/api/LocationController.java | 31 +++++++++++++-- .../user/api/UserController.java | 23 ++++++++++- 5 files changed, 98 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/likelion/likelion_12th_team05/config/SwaggerConfig.java b/src/main/java/org/likelion/likelion_12th_team05/config/SwaggerConfig.java index 1661d5a..8287f81 100644 --- a/src/main/java/org/likelion/likelion_12th_team05/config/SwaggerConfig.java +++ b/src/main/java/org/likelion/likelion_12th_team05/config/SwaggerConfig.java @@ -15,8 +15,8 @@ public class SwaggerConfig { private Info apiInfo() { return new Info() - .title("Swaager API") - .description("Swagger API 테스트") + .title("Walk Mate Swagger API") + .description("Walk Mate Swagger API입니다.") .version("1.0.0"); } diff --git a/src/main/java/org/likelion/likelion_12th_team05/curation/api/CurationController.java b/src/main/java/org/likelion/likelion_12th_team05/curation/api/CurationController.java index f045f9e..3f20b3a 100644 --- a/src/main/java/org/likelion/likelion_12th_team05/curation/api/CurationController.java +++ b/src/main/java/org/likelion/likelion_12th_team05/curation/api/CurationController.java @@ -1,5 +1,8 @@ package org.likelion.likelion_12th_team05.curation.api; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.likelion.likelion_12th_team05.common.error.SuccessCode; @@ -29,7 +32,12 @@ public class CurationController { private final LocationService locationService; private final UserService userService; - // 큐레이션 지도 페이지 - 모든 사용자가 큐레이션 6개씩 조회 가능 + @Operation(summary = "모든 사용자가 큐레이션 6개씩 조회", description = "모든 사용자가 큐레이션을 6개씩 조회합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "500", description = "서버 내부 오류입니다.") + }) @GetMapping @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate curationFindAll ( @@ -49,7 +57,12 @@ public ApiResponseTemplate curationFindAll ( return ApiResponseTemplate.successResponse(curationListResDto, SuccessCode.GET_SUCCESS); } - // 큐레이션 생성 페이지 - 인증된 사용자가 큐레이션 생성 가능 + @Operation(summary = "인증된 사용자가 큐레이션 생성", description = "인증된 사용자가 큐레이션을 생성합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PostMapping @ResponseStatus(HttpStatus.CREATED) // @Valid 추가 예정 public ApiResponseTemplate curationSave(@RequestBody CurationSaveReqDto curationSaveReqDto @@ -58,7 +71,12 @@ public ApiResponseTemplate curationSave(@RequestBody Curatio return ApiResponseTemplate.successResponse(curationInfoResDto, SuccessCode.CURATION_SAVE_SUCCESS); } - // 큐레이션 지도 페이지 - 인증된 사용자가 큐레이션 이름, content 수정, 삭제 가능 + @Operation(summary = "인증된 사용자가 큐레이션 수정", description = "인증된 사용자가 큐레이션을 수정합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PatchMapping("/{curationId}") @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate curationUpdate(@PathVariable("curationId") Long curationId, @@ -68,7 +86,12 @@ public ApiResponseTemplate curationUpdate(@PathVariable("cur return ApiResponseTemplate.successResponse(curationInfoResDto, SuccessCode.CURATION_UPDATE_SUCCESS); } - // 인증된 사용자가 큐레이션 삭제 + @Operation(summary = "인증된 사용자가 큐레이션 삭제", description = "인증된 사용자가 큐레이션을 삭제합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @DeleteMapping("/{curationId}") @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate curationDelete(@PathVariable("curationId") Long curationId, @@ -77,7 +100,12 @@ public ApiResponseTemplate curationDelete(@PathVariable("curationId return ApiResponseTemplate.successWithNoContent(SuccessCode.GET_SUCCESS); } - // 큐레이션 지도 페이지 - 모든 사용자가 큐레이션 검색 가능(query="서울" 이런 식으로) + @Operation(summary = "모든 사용자가 큐레이션 검색", description = "모든 사용자가 큐레이션을 검색합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "500", description = "서버 내부 오류입니다.") + }) @GetMapping("/search") @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate searchCurations(@RequestParam String query) { diff --git a/src/main/java/org/likelion/likelion_12th_team05/like/api/LikeController.java b/src/main/java/org/likelion/likelion_12th_team05/like/api/LikeController.java index 76e2087..b3a0d63 100644 --- a/src/main/java/org/likelion/likelion_12th_team05/like/api/LikeController.java +++ b/src/main/java/org/likelion/likelion_12th_team05/like/api/LikeController.java @@ -1,5 +1,8 @@ package org.likelion.likelion_12th_team05.like.api; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.likelion.likelion_12th_team05.common.error.SuccessCode; import org.likelion.likelion_12th_team05.config.ApiResponseTemplate; @@ -15,7 +18,12 @@ public class LikeController { private final LikeService likeService; - // 인증된 사용자 - 큐레이션에 좋아요 누르기 + @Operation(summary = "인증된 사용자가 큐레이션에 좋아요", description = "인증된 사용자가 큐레이션에 좋아요를 합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PostMapping("/{curationId}/like") public ApiResponseTemplate likeSave(@PathVariable("curationId") Long curationId, Principal principal) { @@ -23,7 +31,12 @@ public ApiResponseTemplate likeSave(@PathVariable("curationId") Lon return ApiResponseTemplate.successWithNoContent(SuccessCode.LIKE_SAVE_SUCCESS); } - // 인증된 사용자 - 큐레이션에 좋아요 취소 + @Operation(summary = "인증된 사용자가 큐레이션에 좋아요 취소", description = "인증된 사용자가 큐레이션에 좋아요를 취소합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @DeleteMapping("/{curationId}/unlike") public ApiResponseTemplate likeDelete(@PathVariable("curationId") Long curationId, Principal principal) throws IOException { diff --git a/src/main/java/org/likelion/likelion_12th_team05/location/api/LocationController.java b/src/main/java/org/likelion/likelion_12th_team05/location/api/LocationController.java index 21adcc2..1725db6 100644 --- a/src/main/java/org/likelion/likelion_12th_team05/location/api/LocationController.java +++ b/src/main/java/org/likelion/likelion_12th_team05/location/api/LocationController.java @@ -1,5 +1,8 @@ package org.likelion.likelion_12th_team05.location.api; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import org.likelion.likelion_12th_team05.common.error.SuccessCode; @@ -25,7 +28,12 @@ public class LocationController { private final LocationService locationService; private final CurationService curationService; - // 인증된 사용자 - 내가 지도에서 고른 위치 모두 보기 + @Operation(summary = "인증된 사용자가 고른 위치 조회", description = "인증된 사용자가 고른 위치를 조회합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @GetMapping @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate locationFindAll(Principal principal) { @@ -33,7 +41,12 @@ public ApiResponseTemplate locationFindAll(Principal princip return ApiResponseTemplate.successResponse(locationListResDto, SuccessCode.GET_SUCCESS); } - // 인증된 사용자 - 위치 생성 - 위치 이름 + 산책로 설명 + 사진 저장 + @Operation(summary = "인증된 사용자가 위치 생성", description = "인증된 사용자가 위치를 생성합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PostMapping(value = "/{curationId}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate locationSave(@RequestPart("location") LocationSaveReqDto locationSaveReqDto, @@ -44,7 +57,12 @@ public ApiResponseTemplate locationSave(@RequestPart("locati return ApiResponseTemplate.successResponse(locationInfoResDto, SuccessCode.LOCATION_SAVE_SUCCESS); } - // 인증된 사용자 - 산책로 수정 - 산책로 설명 + 사진 수정 + @Operation(summary = "인증된 사용자가 위치 수정", description = "인증된 사용자가 위치를 수정합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PatchMapping(value = "/{locationId}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate locationUpdate(@PathVariable("locationId") Long locationId, @@ -55,7 +73,12 @@ public ApiResponseTemplate locationUpdate(@PathVariable("loc return ApiResponseTemplate.successResponse(locationInfoResDto, SuccessCode.LOCATION_UPDATE_SUCCESS); } - // 인증된 사용자 - 산책로 삭제 - 아예 장소를 삭제 + @Operation(summary = "인증된 사용자가 위치 삭제.", description = "인증된 사용자가 위치를 삭제합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @DeleteMapping("/{locationId}") @ResponseStatus(HttpStatus.OK) public ApiResponseTemplate locationDelete(@PathVariable("locationId") Long locationId, Principal principal) { diff --git a/src/main/java/org/likelion/likelion_12th_team05/user/api/UserController.java b/src/main/java/org/likelion/likelion_12th_team05/user/api/UserController.java index d96b7c3..7d93f83 100644 --- a/src/main/java/org/likelion/likelion_12th_team05/user/api/UserController.java +++ b/src/main/java/org/likelion/likelion_12th_team05/user/api/UserController.java @@ -1,5 +1,8 @@ package org.likelion.likelion_12th_team05.user.api; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import jakarta.validation.Valid; import org.likelion.likelion_12th_team05.common.error.SuccessCode; import org.likelion.likelion_12th_team05.config.ApiResponseTemplate; @@ -21,13 +24,24 @@ public UserController(UserService userService, AuthLoginService authLoginService this.authLoginService = authLoginService; } - // 자체 회원가입 + @Operation(summary = "회원가입", description = "자체 회원가입") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @PostMapping("/sign-up") public ApiResponseTemplate userSignUp(@RequestBody @Valid UserSignUpReqDto userSignUpReqDto) { userService.userSignUp(userSignUpReqDto); return ApiResponseTemplate.successWithNoContent(SuccessCode.USER_SIGNUP_SUCCESS); } + @Operation(summary = "구글 로그인", description = "구글 로그인") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @GetMapping("/code/google") public GoogleToken googleCallback(@RequestParam(name = "code") String code) { String googleAccessToken = authLoginService.getGoogleAccessToken(code); @@ -38,7 +52,12 @@ public GoogleToken signUpOrSignIn(String googleAccessToken) { return authLoginService.signUpOrSignIn(googleAccessToken); } - // 자체 로그인 + @Operation(summary = "로그인", description = "자체 로그인") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "응답 생성에 성공하였습니다."), + @ApiResponse(responseCode = "400", description = "잘못된 요청입니다."), + @ApiResponse(responseCode = "401", description = "인증이 필요합니다.") + }) @GetMapping("/sign-in") private ApiResponseTemplate userSignIn(@RequestBody @Valid UserSignInReqDto userSignInReqDto) { UserSignInResDto userSignInResDto = userService.userSignIn(userSignInReqDto);