rest API

김태완·2022년 2월 10일
0

프론트엔드

목록 보기
15/30
post-thumbnail

막연하게 get, post만 알고있던 rest에 대해서 자세히 알아보자.

그런 restAPI로 괜찮은가라는 영상을 봤는데 아주 교과서적인 rest에 대해서 다루는것 같았다. rest아키텍쳐에 맞는 rest스러운 api를 다루도록 노력해보자

우선 잘 정리된 글이 있어 아래 게시글을 많이 참고하였고 이 글에는 핵심만 정리하였다
https://meetup.toast.com/posts/92
https://devuna.tistory.com/77

HTTP 상태코드

  • 200 : (클라이언트가)요청을 정상적으로 수행함
  • 201 : 리소스 생성요청(POST)건에 대한 리소스가 성공적으로 생성됨
  • 301 : 요청한 리소스에 대한 URI가 변경되었음
  • 400 : 요청이 부적절한 경우
  • 401 : 인증되지않은 상태로 보호된 리소스에 요청했을때 (로그인하지않고 요청시)
  • 403 : 인증상태와 상관없이 응답하고싶지 않은 리소스를 요청했을때 (404를 권장함. 403은 리소스가 존재한다는뜻)
  • 404 : 존재하지않는 리소스에 접근했을때.
  • 405 : 요청한 리소스에서 사용불가능한 Method를 이용했을경우

HTTP 요청

  • HTTP 응답은 요청방식,헤더,본문 3가지 구조로 이루어져있다.
  • 헤더는 공통헤더, 응답헤더, 요청헤더로 이루어져있다
    헤더에 대한 자세한 내용 : https://goddaehee.tistory.com/169
// 요청방식
GET http://goddaehee.tistory.com/168 HTTP/1.1

// 헤더 (데이터에대한 정보)
Host: goddaehee.tistory.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://goddaehee.tistory.com/
Accept-Encoding: gzip, deflate
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: menuEnabled=1;

//바디 (실제 데이터)
<!doctype html>
...

HTTP Method

  • GET : 리소스를 조회하고 정보를 가져온다
  • HEAD : header정보만을 요청보낸다. (서버점검 여부판단시 사용, GET보다 빠름)
  • POST : (해당 URI의) 리소스를 생성한다
  • PUT : 리소스 전체를 수정한다, 단 보내지 않은 내용은 NULL로 처리한다
  • PATCH : 리소스의 특정부분만 수정한다
  • DELETE : 리소스를 삭제한다
//서버상태
{name:"default, age:0"}

// {name:"ktw"}  PUT 요청시
// 서버상태는 {name:"ktw", age:NULL}

// {name:"ktw"} PATCH 요청시
// 서버상태는 {name:"ktw", age:0}

profile
프론트엔드개발

0개의 댓글