REST API 알아보기

REST API 알아보기

Rest

Representational State Transfer

직역하자면 추상적 상태 교환? 자원의 상태에 의한 전달


REST의 구성

  • 자원(RESOURCE) - URI
  • 행위(VERB) - HTTP METHOD
  • 표현(Representation of Resource)

URI

  • 통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다.
  • URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
  • URI의 하위개념으로 URL, URN 이 있다.

HTTP METHOD

  • POST (해당 URI에 대한 리소스를 생성)
  • GET (해당 리소스를 조회)
  • PUT (해당 리소스를 수정)
  • DELETE (해당 리소스를 삭제)

REST API 설계규칙

  • 동사보다는 명사를 사용한다.
  • URI에 HTTP METHOD가 들어가서는 안된다.
  • 경로중 변하는 부분은 유일한 값으로 대체한다. EX) 1,2,3…

URI 설계시 주의할 점

  • 슬래시 구분자(/)는 계층 관계를 나타내는데 사용한다.
  • 따라서 마지막 문자를 슬래시 구분자(/)로 쓰지 않는다.
  • 하이픈(-)은 가독성을 높이는데 사용한다.
  • 밑줄(_)은 사용하지 않는다.
  • URI경로에는 소문자가 적합하다.
  • 파일 확장자는 URI에 포함시키지 않는다.
    • Accept header를 사용한다. Accept: image/jpg

HTTP 응답 상태 코드

100~500번대 응답이 많이 있지만, 주로 나타나는 응답 상태 코드입니다.

  • 200: 요청이 성공적으로 되었습니다. 성공의 의미는 HTTP 메소드에 따라 달라집니다.
  • 201: 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.
  • 400(Bad Request): 이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미합니다.
  • 401(Unauthorized): 비록 HTTP 표준에서는 “미승인(unauthorized)”를 명확히 하고 있지만, 의미상 이 응답은 “비인증(unauthenticated)”을 의미합니다.
  • 403(Forbidden): 클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다.
  • 404(Not Found): 서버는 요청받은 리소스를 찾을 수 없습니다.
  • 405(Method Not Allowed): 요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다.
  • 418(I’m a teapot): 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다.????
  • 500(Internal Server Error): 서버가 처리 방법을 모르는 상황과 마주쳤다. 서버는 아직 처리 방법을 알 수 없다.
  • 503(Service Unavailable): 서버가 요청을 처리할 준비가 되지 않았다. 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸린 서버다.

RESTFUL이란

  • 위의 REST API를 따르는 웹 서비스를 RESTFUL하다고 한다.
  • beautiful, hateful, careful 같이