HTTP 메서드 1. HTTP API

최창우·2022년 8월 11일
0

HTTP

목록 보기
5/7
post-thumbnail

🙌 이전 포스팅 참고

📕 HTTP API

📖 HTTP API를 설계한다면?

회원정보관리 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

📖 HTTP Method 종류

HTTP Method는 클라이언트가 서버에 Request시 리소스에 대한 행위를 의미하게된다. 따라서 서버는 Method 종류만 보아도 클라이언트가 어떤 행위를 하고자 하는지 알 수 있다.

종류

CRUD

POST : Create / 요청 데이터 처리, 주로 등록에 사용 
GET : Read / 리소스 조회
PUT : Update / 리소스 (새롭게 덮어씌워서)대체, 없으면 생성
PATCH : Update / 리소스 부분 변경
Delete : Delete / 리소스 삭제

그 외 종류

HEAD : GET과 동일하지만 메시지 부분제외하고 상태줄과 헤더만 반환
OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명 
	- 주로 CORS에서 사용

📖 GET

  1. 리소스 조회시 사용
  2. 서버에 전달할 데이터는 QUERY를 통해 전달
    • 쿼리 파라미터, 쿼리 스트링이라고 함
    • ?q=hello&hl=ko
  3. 메시지 바디를 사용해서 전달해도되지만, 지원하지안흔ㄴ곳이 많아서 권장X

📖 POST

  1. 요청 데이터 처리시 사용
  2. Body에 요청 데이터 담아서 전달
  3. 서버는 클라이언트로 받은 요청 데이터를 처리
    • 신규 리소스 등록
    • 프로세스 처리

참고로 알아둘점

  1. POST에 대한 Response 메시지는 header에
    Location: /members/100
    형태로 새로 생성된 리소스 위치를 리턴해준다.
  2. 데이터조회(Read)를 하고싶어서 GET을 쓰려고했는데, 만약 요청 데이터를 Body에 담고싶으면 POST를 써도 무관하다.

📖 PUT

  1. 리소스 대체
    • 있으면 대체 = 없애고 새로만들기
    • 없으면 생성
  2. 클라이언트가 리소스를 식별한 상태
    • 클라이언트가 리소스 위치를 알고 URI를 상세하게 지정
    • 예) PUT /members/100 HTTP/1.1
    • 차이점) POST /members HTTP/1.1

📖 PATCH

PUT과 다르게 부분변경할때 사용한다.

예)

현재 서버의 바디

{
	"username":"ccw"
	"age":20
}

request의 바디

{
	"age":50
}

PATCH후 바디

{
	"username":"ccw"
	"age":50
}

📚Reference

본 포스팅은 인프런-김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 내용을 토대로 작성하였습니다. 진짜 강의도 너무 좋고 강의 타임도 짧은데다, 저렴하니 들어보면 좋을거같습니다.

profile
유능한 개발자가 되고 싶은 헬린이

0개의 댓글