회원정보관리 API를 만들어라
필요한사항
1. 회원목록조회
2. 회원조회
3. 회원등록
4. 회원수정
5. 회원삭제
다음 필요한사항을 API URI 설계한다면?
1. 회원목록조회/read-member-list
2. 회원조회/read-member-by-id
3. 회원등록/create-member
4. 회원수정/update-member
5. 회원삭제/delete-member
위처럼 설계하면 좋은방법일까? (X)
가장 중요한것은 리소스 식별이다.
위 예시에서 리소스의 의미는 회원이라는 개념자체이다. 따라서 회원 등록/수정/조회는 모두 무시하고 회원이라는 리소스만 식별하면 된다.
'회원'리소스를 URI에 매핑
하지만 그렇게하면 리소스에 대한 행위는 어떻게구분하지?
HTTP Method는 클라이언트가 서버에 Request시 리소스에 대한 행위를 의미하게된다. 따라서 서버는 Method 종류만 보아도 클라이언트가 어떤 행위를 하고자 하는지 알 수 있다.
종류
CRUD
POST : Create / 요청 데이터 처리, 주로 등록에 사용
GET : Read / 리소스 조회
PUT : Update / 리소스 (새롭게 덮어씌워서)대체, 없으면 생성
PATCH : Update / 리소스 부분 변경
Delete : Delete / 리소스 삭제
그 외 종류
HEAD : GET과 동일하지만 메시지 부분제외하고 상태줄과 헤더만 반환
OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명
- 주로 CORS에서 사용
참고로 알아둘점
Location: /members/100
PUT과 다르게 부분변경할때 사용한다.
예)
현재 서버의 바디
{
"username":"ccw"
"age":20
}
request의 바디
{
"age":50
}
PATCH후 바디
{
"username":"ccw"
"age":50
}
본 포스팅은 인프런-김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 내용을 토대로 작성하였습니다. 진짜 강의도 너무 좋고 강의 타임도 짧은데다, 저렴하니 들어보면 좋을거같습니다.