예를 들어
GET /users
POST /users
같은 URL이라도
HTTP 메서드에 따라 의미가 완전히 달라진다.
정의
특징
• 데이터를 조회(Read) 할 때 사용
• 서버 상태를 변경하지 않음 (Safe)
• URL에 파라미터를 포함
예시
GET /users
GET /users/1
@GetMapping("/users")
public String getUsers() {
return "user list";
}
@GetMapping("/users/{id}")
public String getUser(@PathVariable String id) {
return "user id = " + id;
}
정의
특징
• 데이터를 생성(Create) 할 때 사용
• 요청 바디에 데이터 포함
• 서버 상태 변경 발생
예시
POST /users
@PostMapping("/users")
public String addUser() {
return "create user";
}
정의
특징
• 데이터를 부분 수정(Update 일부) 할 때 사용
• 변경된 필드만 전달
예시
PATCH /users/1
@PatchMapping("/users/{id}")
public String updateUser(@PathVariable String id) {
return "update user id = " + id;
}
정의
데이터를 삭제할 때 사용
특징
• 데이터를 삭제(Delete) 할 때 사용
• 서버 상태 변경 발생
예시
DELETE /users/1
@DeleteMapping("/users/{id}")
public String deleteUser(@PathVariable String id) {
return "delete user id = " + id;
}