From 9de1f2d7e506ef59e9b0f03a4ba7c913bdb89efc Mon Sep 17 00:00:00 2001 From: woojin065 Date: Sun, 16 Jun 2024 22:03:08 +0900 Subject: [PATCH] =?UTF-8?q?swagger=20=EC=98=A4=EB=A5=98=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/moreveiw/domain/S3/controller/S3Controller.java | 5 +++++ .../moreveiw/domain/member/controller/MemberController.java | 6 ++++++ .../domain/threeDAI/controller/ThreeDAIController.java | 5 +++++ .../domain/websocket/controller/ChatController.java | 4 ++++ .../domain/websocket/controller/StompController.java | 4 ++++ .../java/com/example/moreveiw/global/config/AWSConfig.java | 4 ++-- .../com/example/moreveiw/global/config/SecurityConfig.java | 3 ++- 7 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/moreveiw/domain/S3/controller/S3Controller.java b/src/main/java/com/example/moreveiw/domain/S3/controller/S3Controller.java index 261ef77..ef1beba 100644 --- a/src/main/java/com/example/moreveiw/domain/S3/controller/S3Controller.java +++ b/src/main/java/com/example/moreveiw/domain/S3/controller/S3Controller.java @@ -2,6 +2,8 @@ import com.example.moreveiw.domain.S3.model.dto.S3UrlResponse; import com.example.moreveiw.domain.S3.service.S3Service; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; @@ -12,16 +14,19 @@ @RestController @RequiredArgsConstructor @CrossOrigin("*") +@Tag(name = "S3 Controller", description = "S3 관련 API") public class S3Controller { private final S3Service imageService; @PostMapping(value = "/file", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "이미지 업로드", description = "S3에 이미지를 업로드합니다.") public S3UrlResponse uploadImage(@RequestBody MultipartFile file) throws IOException { return imageService.uploadImage(file); } @DeleteMapping("/file") + @Operation(summary = "이미지 삭제", description = "S3에서 이미지를 삭제합니다.") public boolean deleteImage(@RequestParam String fileUrl) { return imageService.deleteImage(fileUrl); } diff --git a/src/main/java/com/example/moreveiw/domain/member/controller/MemberController.java b/src/main/java/com/example/moreveiw/domain/member/controller/MemberController.java index 1d57183..c9d19e3 100644 --- a/src/main/java/com/example/moreveiw/domain/member/controller/MemberController.java +++ b/src/main/java/com/example/moreveiw/domain/member/controller/MemberController.java @@ -7,6 +7,8 @@ import com.example.moreveiw.domain.member.service.MemberService; import com.example.moreveiw.global.security.jwt.JwtFilter; import com.example.moreveiw.global.security.jwt.TokenProvider; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -23,6 +25,7 @@ @RestController @RequestMapping("/api") @RequiredArgsConstructor +@Tag(name = "Member Controller", description = "회원 관련 API") public class MemberController { private final TokenProvider tokenProvider; @@ -30,11 +33,13 @@ public class MemberController { private final MemberService memberService; @PostMapping("/sign-in") + @Operation(summary = "회원가입", description = "새로운 회원을 가입시킵니다.") public ResponseEntity signIn(@Valid @RequestBody MemberRequest request) { return ResponseEntity.ok(memberService.signup(request)); } @PostMapping("/login") + @Operation(summary = "로그인", description = "회원 로그인을 처리합니다.") public ResponseEntity authorize(@Valid @RequestBody MemberLoginRequest request) { UsernamePasswordAuthenticationToken authenticationToken = @@ -53,6 +58,7 @@ public ResponseEntity authorize(@Valid @RequestBody MemberLoginRequest @GetMapping("/user") @PreAuthorize("hasAnyRole('USER','ADMIN')") + @Operation(summary = "유저 정보 조회", description = "로그인한 유저의 정보를 조회합니다.") public ResponseEntity getMyUserInfo(HttpServletRequest request) { return ResponseEntity.ok(memberService.getMyMemberWithAuthorities()); } diff --git a/src/main/java/com/example/moreveiw/domain/threeDAI/controller/ThreeDAIController.java b/src/main/java/com/example/moreveiw/domain/threeDAI/controller/ThreeDAIController.java index a252137..c5d0e7f 100644 --- a/src/main/java/com/example/moreveiw/domain/threeDAI/controller/ThreeDAIController.java +++ b/src/main/java/com/example/moreveiw/domain/threeDAI/controller/ThreeDAIController.java @@ -7,20 +7,25 @@ import org.springframework.web.bind.annotation.*; import java.io.IOException; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; @RestController @RequiredArgsConstructor @Validated @CrossOrigin("*") +@Tag(name = "3D AI Controller", description = "3D AI 관련 API") public class ThreeDAIController { private final ThreeDAIService threeDAIService; @PostMapping("/treeDAI") + @Operation(summary = "3D AI 생성", description = "이름을 받아 3D AI를 생성합니다.") public String makeThreeDAI(@RequestBody String name) throws IOException { return threeDAIService.makeThreeDAI(name); } @GetMapping("/treeDAI") + @Operation(summary = "3D AI 조회", description = "이름을 받아 3D AI 정보를 조회합니다.") public ThreeDAIResponse getThreeDAI(@RequestParam String name) { return threeDAIService.getThreeDAI(name); } diff --git a/src/main/java/com/example/moreveiw/domain/websocket/controller/ChatController.java b/src/main/java/com/example/moreveiw/domain/websocket/controller/ChatController.java index d79bba8..65dc1b2 100644 --- a/src/main/java/com/example/moreveiw/domain/websocket/controller/ChatController.java +++ b/src/main/java/com/example/moreveiw/domain/websocket/controller/ChatController.java @@ -6,16 +6,20 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; @RestController @RequiredArgsConstructor @RequestMapping("chat-rooms") +@Tag(name = "WebSocket Controller", description = "WebSocket 관련 API") public class ChatController { private final ProjectService chatService; // RoomName으로 채팅방 생성 @PostMapping + @Operation(summary = "채팅방 생성", description = "새로운 채팅방을 생성합니다.") public ProjectRoom createRoom() { return chatService.createProjectRoom(); } diff --git a/src/main/java/com/example/moreveiw/domain/websocket/controller/StompController.java b/src/main/java/com/example/moreveiw/domain/websocket/controller/StompController.java index a6bd434..800bfde 100644 --- a/src/main/java/com/example/moreveiw/domain/websocket/controller/StompController.java +++ b/src/main/java/com/example/moreveiw/domain/websocket/controller/StompController.java @@ -4,13 +4,17 @@ import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.stereotype.Controller; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; @Controller @RequiredArgsConstructor +@Tag(name = "Stomp Controller", description = "STOMP WebSocket API") public class StompController { @MessageMapping("/hello") @SendTo("/sub/greetings") + @Operation(summary = "메시지 보내기", description = "메시지를 받아서 구독자에게 보냅니다.") public String greeting(String message) throws Exception { return message; } diff --git a/src/main/java/com/example/moreveiw/global/config/AWSConfig.java b/src/main/java/com/example/moreveiw/global/config/AWSConfig.java index 31e47e7..86da850 100644 --- a/src/main/java/com/example/moreveiw/global/config/AWSConfig.java +++ b/src/main/java/com/example/moreveiw/global/config/AWSConfig.java @@ -9,9 +9,9 @@ @Configuration public class AWSConfig { - @Value("${AWS_ACCESS_KEY}") + @Value("application.yml.cloud.aws.credentials.accessKey") private String AWS_ACCESS_KEY; - @Value("${AWS_SECRET_KEY}") + @Value("application.yml.cloud.aws.credentials.secretKey") private String AWS_SECRET_KEY; private final String region = "ap-northeast-2"; diff --git a/src/main/java/com/example/moreveiw/global/config/SecurityConfig.java b/src/main/java/com/example/moreveiw/global/config/SecurityConfig.java index 5caa82c..6b263f0 100644 --- a/src/main/java/com/example/moreveiw/global/config/SecurityConfig.java +++ b/src/main/java/com/example/moreveiw/global/config/SecurityConfig.java @@ -57,7 +57,8 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .authorizeHttpRequests(authorizeHttpRequest -> authorizeHttpRequest .requestMatchers("/api/sign-in", "api/login").permitAll() - .requestMatchers(PathRequest.toH2Console()).permitAll() + .requestMatchers("/swagger-ui.html", "/swagger-ui/**", "/v3/api-docs/**").permitAll() // 스웨거 경로 허용 + .requestMatchers(("/file/**")).permitAll() .anyRequest().authenticated() )