5/16 포스팅 (REST API & GraphQL API)

김지영·2022년 5월 16일
0

[REST API]

  • REST는 REpresentational State Transfer를 줄인 말로, 가장 널리 쓰이는 API 중 하나입니다.
  • RESTful API HTTP methods에는 GET (resource를 검색), POST (새로운 resource를 저장), PUT (resource를 이미 존재하는 URI에 저장), DELETE (resource를 지움), 이렇게 4개가 있습니다.
  • 여기서 중요한 것은, RESTful: 즉 REST 답기 위해서는, 위 4개의 methods들 중 POST를 제외하고는 idempotent (멱등)의 성질을 가지고 있어야 한다는 것입니다. '멱등하다'는 것은 같은 요청을 여러번 했을 때 결과값이 항상 같다는 것입니다.
  • REST에서는 resource들이 "Uniform Resource Identifiers" (URI)에 의해서 identified 됩니다. 이것을 REST의 nouns(명사)라고 부르구요. REST의 verbs(동사)에는 위에서 언급한 GET, POST, PUT, DELETE, 이렇게 4가지가 있습니다.
  • REST 원칙에는 clients(요청을 하는 쪽)과 servers(요청에 응답하는 쪽)에게 각각 요구되는 사항들이 있는데, 아래에 짧게 설명하겠습니다:
    - Clients는 앱 상태를 유지합니다.
    - 서버측에 요청하는 메세지는 clients의 상태와 무관해야 합니다 (= stateless).
    - 고로, 서버측에서는 clients의 상태 (eg. 유저가 누구인 지, 유저가 어디에 있는 지, 등)에 대해서 전혀 모르는 상태여야 합니다.
    - 또, Servers는 resource 구조 자체를 유지합니다.
    - 클라이언트는 서버의 내부구조에 대해 알 필요도 없어야 합니다. 데이터를 요청하기 위해서는 단순히 4개의 verb (= methods)와 API 이름 (주소처럼 생겼습니다!)만 있으면 되는거죠.
  • 마지막으로, REST API에서 클라이언트는 필요한 데이터만 골라받을 수 없습니다. 이는 아래에 서술할 GraphQL API의 경우와 상반되죠.

[GraphQL API]

  • 널리 쓰이는 또다른 API 중에는 GraphQL이 있습니다. GraphQL은 페이스북에서 개발해서 페이스북은 물론, 인스타그램, 트위터 등에서도 사용됩니다.
  • GraphQL은 REST API와 다르게 URL 주소처럼 생긴 API 이름들 대신 함수이름처럼 생긴 API 이름들을 사용합니다.
  • 또, REST API와 다르게 필요한 데이터만 골라받을 수 있어서 더 효율적인 통신이 가능하죠.
profile
아줌마

0개의 댓글