url은 '/api/resouce'와 같이 자원명만 쓰고 CRUD에 대한 것은 HttpMethod를 이용해서 처리해줘야 한다. 즉, url에 동사가 들어가는 것은 좋지 않다. 이 때 resouce를 적을 때 복수형으로 설정하는 것이 일반적인 규칙이다. 또한 @Pathvariable을 적극 활용하자.

 

조회의 경우 Get

추가의 경우 Post

수정의 경우 Put - 전체 수정

수정의 경우 Patch - 일부 수정

삭제의 경우 Delete

HttpMethod 사용

 

@RequiredArgsConstructor
@RestController
@RequestMapping("/user")
public class UserController {

    private final UserService userService;

    @PostMapping
    public ResponseEntity<?> saveUser(@RequestBody LoginUserDto loginUserDto) {
        TokenDto tokenDto = userService.save(loginUserDto);
        return ResponseEntity.ok()
                .header("access", tokenDto.getAccessToken())
                .header("refresh", tokenDto.getRefreshToken()).build();
    }

    @GetMapping
    public ResponseEntity<?> getUserInfo(Principal principal) {
        UserDto userDto = userService.get(principal.getName());
        return ResponseEntity.ok()
                .body(userDto);
    }

    @PutMapping
    public ResponseEntity<?> updateUserInfo(@RequestBody UserDto userDto, Principal principal) {
        userService.update(userDto, principal.getName());
        return ResponseEntity.ok().build();
    }
}

'Spring Boot' 카테고리의 다른 글

Spring Boot 직렬화 필터링 fear. JSON  (0) 2024.07.14
Spring Boot - 필터에서 발생한 예외 처리  (0) 2024.07.12
Spring Boot - 비동기 처리  (0) 2024.06.25
Spring Boot - RabbitMQ  (0) 2024.06.25
Spring Boot 예외 처리  (0) 2024.06.14

+ Recent posts