Backend/SpringBoot

REST -> RESTful 예제

Dean83 2025. 9. 19. 11:49

이론적인 부분은 https://dean83.tistory.com/333 이곳에 기록해 두었다. 

주로, URI 설계와 어떤 http method를 매핑해놓는지로 판단된다.

 

1. REST 예제

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

    // 사용자 조회
    @GetMapping("/getUserInfo")
    public User getUserInfo(@RequestParam Long id) {
        return userService.findById(id);
    }

    // 사용자 생성
    @PostMapping("/createUser")
    public String createUser(@RequestBody User user) {
        userService.save(user);
        return "User created";
    }

    // 사용자 삭제
    @PostMapping("/deleteUser")
    public String deleteUser(@RequestParam Long id) {
        userService.delete(id);
        return "User deleted";
    }
}
  • URI 에 create, delete 등 구체적인 동작에 대한 내용이 들어가 있다. 
  • 삭제가 DELETE 가 아닌 POST로 구현되어 있다. 

 

2. RESTFul 예제

@RestController
@RequestMapping("/users")
public class UserController {

    // 사용자 전체 조회
    @GetMapping
    public List<User> getUsers() {
        return userService.findAll();
    }

    // 특정 사용자 조회
    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findById(id);
    }

    // 사용자 생성
    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User saved = userService.save(user);
        return ResponseEntity.status(HttpStatus.CREATED).body(saved);
    }

    // 사용자 수정
    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        return userService.update(id, user);
    }

    // 사용자 삭제
    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        userService.delete(id);
        return ResponseEntity.noContent().build();
    }
}
  •