[Web]REST API

박성수·2022년 10월 23일
0

REST API

REST는 representational state transfer의 약자로 상태를 전달하는 것을 나타내는 방법으로 소개되었다. API시스템을 구현하기 위한 아키텍쳐 중 가장 널리 쓰이는 형식이다. Restful API는 말 그대로 Rest하게 설계된 API를 의미한다.

클라이언트와 서버의 Database사이의 소통은 RestAPI를 거치게된다.

REST API의 가장 큰 장점 중 하나는 그 자체만으로도 API의 목적이 쉽게 이해가 된다는 점이다.

API를 들여다보면 어느 정보를 요청하고 있는지 명확히 알 수 있다.

REST API Uniform Interface

RestAPI는 플랫폼 언어와 관계없이 일관되어야 한다.

  1. URI는 동사를 제외한 명사로 구성되어야한다.
  2. Resource에 대한 행위를 HTTP method로만 표현한다.
  3. Resource사이에 연관 및 계층관계가 있는 경우 ‘/’를 사용한다.
  4. URI마지막 문자로 ‘/’를 포함하지 않는다.
  5. URI가 길어질 경우 -를 사용하여 가독성을 높인다.
  6. 파일 확장자는 URI에 포함시키지 않습니다.
  7. 응답 Response의 status code의 기본적인 규칙을 따른다.

Path parameter와 Query parameter

path parameter

path parameter에는 URL로 고유한 자원(resource, data)을 지칭할 수 있다.

product라는 url에 아이템의 리스트들이 있을 때 각각의 상품의 상세페이지로서 각각 상품의 id를 변수로 설정하고 라우팅을 설정할 수 있다.

예를 들면 라우팅경로로 product/:id로 해놓고

  • /product/1
  • /product/2
  • /product/3

등의 경로에서 아이디가 각각 1, 2, 3 인 아이템의 상세페이지를 바로 접근하도록 할 수 있다.

이처럼 서로 다른 데이터지만 resource(자원)의 종류는 동일할 때, path parameter를 이용하여 RESTful한 API를 구성할 수 있습니다.

query parameter

path parameter에는 URL로 고유한 자원(resource, data)을 지칭할 수 있다.

product라는 url에 아이템의 리스트들이 있을 때 각각의 상품의 상세페이지로서 각각 상품의 id를 변수로 설정하고 라우팅을 설정할 수 있다.

예를 들면 라우팅경로로 product/:id로 해놓고

  • /product/1
  • /product/2
  • /product/3

등의 경로에서 아이디가 각각 1, 2, 3 인 아이템의 상세페이지를 바로 접근하도록 할 수 있다.

이처럼 서로 다른 데이터지만 resource(자원)의 종류는 동일할 때, path parameter를 이용하여 RESTful한 API를 구성할 수 있습니다.

Query parameter는 url에서 특정한 조건을 주고싶을 때 사용하는 매개변수 이다. 같은 API를 호출한다고 해도, 서로 다른 조건으로 나열하는 것이 필요한 상황에 사용한다.

크게 다음과 같은 상황에서 사용한다.

  1. 데이터 필터링
  2. 데이터 정렬
  3. 데이터 수 조절
  4. 검색

‘?’로 시작하여 ‘&’이라는 연결자로 서로 잇는다

예시)

  • /products?offset=0&limit=100 > product라는 상품리스트에서 query parameter사용 0부터 100개의 아이템을 불러옴
  • /products?ordering=-id > product라는 상품리스트에서 id의 역순으로 정렬
profile
Front-end Developer

0개의 댓글