Method
- 주로 사용하는 HTTP Method는 다음 5개가 있다.
- GET
- POST
- PUT
- PATCH
- DELETE
- 서버에 따라 GET, POST 외에는 지원하지 않는 경우도 있다.
- 이 경우 PUT, PATCH, DELETE 대신 POST를 사용한다.
- 서버에 따라 GET 메소드의 HTTP Body를 받지 못하는 경우도 있다.
- 이 경우 클라이언트의 URL에 정보를 노출시키고 싶지 않거나 HTTP Body에 담아서 보내야 할 때 POST를 사용한다.
- 클라이언트 라이브러리에 따라서 GET 메소드에 HTTP Body를 보내지 못하는 경우도 있다. 이 경우 POST를 사용한다.
- JavaScript의 Fetch API (GET 메소드에서 HTTP Body 지원하지 않음)
Member Schema
{
"id": 136,
"name": "김도진",
"age": 20
}
GET
- 목록 조회
- /members
- 상세 유저 조회
- /members/{id}
POST
- 유저 생성
- /members
- 생성 후 id를 알 수 있다.
PUT
- 특정 id 유저 정보 대체 (replace)
- /members/{id}
- 해당 id가 없으면 요청한 정보로 새 유저 생성
- id를 알고 있어야 한다.
- 요청한 정보로 특정 유저 정보를 완전히 대체한다.
- age만 입력해서 요청하는 경우 name은 빈 값이 된다. (id는 고정)
PATCH
- 특정 id 유저 정보 일부 변경 (update)
- /members/{id}
- age만 입력해서 요청하는 경우 name은 기존 값이 유지된다.
DELETE
- 특정 id 유저 정보 삭제
- /members/{id}
Annotation
@PathVariable
- 중괄호 내부의 문자열과 일치하는 변수명에 값을 저장한다.
- 변수명이 중괄호 내부의 문자열과 달라도 @PathVariable("key") 형식으로 어노테이션 프로퍼티에 직접 지정할 수 있다.
- /members/{id}는 다음과 같이 사용할 수 있다.
@RequiredArgsConstructor @RequestMapping("/members") @RestController public class MemberController { private final MemberService memberService; @GetMapping("/{id}") public ResponseEntity<Member> detail(@PathVariable int id) { Member member = memberService.get(id); return ResponseEntity.ok(member); } }
'Network > 2. HTTP' 카테고리의 다른 글
Spring RESTful API 특징 (0) | 2022.02.22 |
---|