[ASAC 7기] 요청과 반환 방법(REST API, GraphQL)

민준·2024년 12월 12일
0
post-thumbnail

1. REST API

REST API : Method + URI 라는 2가지 요소로 구성 → RESTful API 는 REST 철학을 적용한 방식

  • REST API는 데이터를 주고받는 방법을 설명한것 이다.
  • Method = 동사 - 어떤 행위(Method)를 할것인지(GET, PUT, POST, DELETE 등)
  • URI(URL) = 명사 (목적어) - 어떤 자원(Resource)에 대해
  • URL, Location(위치) : https://aaron.com = 장소
  • URI, Indicator(요청할수 있는 자원) : https://aaron.com/users/aaron/favorite-things = 장소 내 지정

쉽게 말하면, 자원(URI)를 읽고 쉽게 유추할수 있고 이를 잘 지킨 것이 RESTful API라고 한다.
예) GET(동사:Methon) aaron.com/car/document (명사:URIorURL)
명사인 URI를 보고 무엇을 요청하는지 직관적으로 알수있는 있다

  • URI 구성 : /collection/document(id)/store/ - 총 4 요소

    • Collection(~들, 집합) - Document 의 상위 디렉토리 리소스 (예, People)

    • Document - Collection 내 단일 리소스 (예, Person)

    • Store - Document 특정 형태 - 하위 리소스, 리소스의 다른 표현 (예, Person’s Favorites)

    • Controller - 표현가능 Method(CRUD) 제외한 행위 명시 - 필요에 따라 URI 마지막에 표현 왜냐하면, Method는 URI에 표현되지 않기 때문이다.

      • 예) /people/12/register - 12번 Person 에 대한 회원등록 (POST 표현 강화)
      • 일반적으로는 Method 로 충분할것같은데, Method 의미를 강화하기 위해 사용하는듯
    • URI (Path) 에 들어가는 변수 (어디에 데이터가 들어갈지 좀더 명확하게 하는것)

  • Representation of Resource = 리소스 표현 - JSON, XML 등등…

  • HTTP Response Status

    • 10X : 정보성 응답Informational Response
    • 20X : 성공 (응답 완료) ← Successful Response
    • 30X : 리다이렉션(다른데로 유도)Redirection
    • 40X : 권한 혹은 잘못된 접근 (유저의 잘못)Client Error
    • 50X : 서버 내부 문제Server Error

2.GraphQL

  • GraphQL : REST API 는 각 비지니스 도메인마다 수많은 API 들을 일일히 만들어야하는 단점 (API 싸개)
    • 예를 들어, 유저 도메인에 대한 단순 API 만든다하더라도
      GET, POST, DELETE, PUT, PATCH 5개
    • 유저 도메인 + 결제 도메인 등 모두 합치면
      하나의 서비스를 위해 백엔드 서버가 제공해야하는 API 수는 수십 수백개
  • GraphQL 과 REST API 의 차이점

    GraphQL은 클라이언트가 필요한 데이터를 정확히 지정하여 요청할 수 있으며, 서버는 해당 요청에 따라 필요한 데이터만 선택적으로 조회하고 한 번의 응답으로 반환합니다.

0개의 댓글