주로 만나게 되는 http 상태 메시지
200-ok
다 잘 동작했습니다.
201-CREATED
새로운 리소스를 만들었습니다.
204-NO CONTENT
리소스가 성공적으로 삭제되어 보낼 컨텐츠가 없습니다.
304-NOT MODIFIED
수정할 내용이 없어 요청된 리소스를 재전송할 필요가 없습니다.
그전 요청과 동일한 요청을 받을 때 이미 동일한 캐시데이터가 있어 그걸로 전달해줬습니다.
400- BAD REQUEST
잘못된 요청으로써 문법상 오류가 있어서 서버가 요청사항을 이해하지 못했습니다.
401 - UNATHORIZED
리소스를 접근할 자격이 없습니다.
403- FORBIDDEN
서버에 요청이 전달되었지만, 권한 때문에 거절되었습니다.
404-NOT FOUND
서버가 요청받은 리소스를 찾을 수 없습니다.
500-INTERNAL SERVER ERROR
요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓였습니다.
get 메소드 👀
"전체 포스팅 목록을 가져오기" 처럼 데이터의 손상없이 조회할 때 사용합니다. 성공시 200 ok http 상태코드가 나타나며 실패시 400 401, 500 와 같은 오류가 주로 발생합니다.
- 성공 200 ok
- 실패 400, 401, 500
get 메소드 사용시 자주쓰는 query params
- paging: 페이지네이션 이나 무한 스크롤과 같은 보여줘야하는 영역에 제한 둘 때 ?page=1&per_page=30
- filtering: 필터링할 때 ?status=open
- sorting: 최신순 과 같이 정렬할 때 ?direction=des(역순)
- searching: 책제목으로 정보 검색할 때 ? q= javascript
post 메소드 📬
"새글 쓰기"처럼 1. 리소스를 생성하거나, "주문하기"버튼을 누르면 "주문하기-포장하기-택배보내기"와 같이 2. 프로세스(과정)를 처리해야 할 때 그리고 주요 메소드를 사용하기엔 3. 모호한 행동 요청을 보낼 때 post 메소드를 사용합니다. 보내고자하는 메시지를 body 에 적고 json 형식으로 작성해서 요청하고 싶을 때는 raw 버튼을 활성화시키고 json 파일로 표시합니다.
이 동작은 http 요청 해더에 다음과 같이 작성하는 것과 동일합니다.
Content-Type: application/json
" 특정 포스트에 댓글 달기"와 같은 요청이라면 post /posts/{postid}/comment 바디에 담길 데이터로는 작성자, 내용, 날짜가 있고 성공시 잘 생성되었다는 성공메시지 201 , 실패했다면 401, 500을 주로 만나실 수 있습니다.
"특정 포스트 삭제"시 사용됩니다. DELETE /posts/{postid}라고 작성가능하며 성공시 잘 삭제되었다는 204 깃헛 레포에서 44기 팀을 초대 ->같은 요청 또 보냄
안좋은 api 디자인 예시
기존 안좋은 api 디자인❌ | 수정된 api 디자인⭕️ | 설명 |
POST /users/new | POST /users | 요청메시지"새로운유저를 생성하다"에서 생성하다라는 동사에서 이미 새롭게 생성하다 라는 말이 포함되었음으로 동음이 반복된 api 다. |
GET /getUsersByLocation | GET /locations/{locationId}/users | 요청메시지"특정장소에 있는 유저만 가져오기" uri 에 getUsersByLocation의 get 과 http 메소드 GET의 동음 반복문제, 대문자 사용지양, 적절한 리소스 구역화 |
GET /users.json | GET /users | 확장자 사용 x |
이외에도 언더바사용을 금지합니다. |