[TIL #53] REST API란?

Whoyoung90·2021년 5월 20일
0
post-thumbnail
post-custom-banner

> REST API란?

웹에서 사용되는 여러 리소스들을 URI로 표현하고
그 리소스에 대한 행위를 HTTP Method(GET, POST ...)로 정의하는 방식을 말합니다.
그리고 Payload를 통해 구조적으로 표현합니다.

URI형식(어떤 정보를) X 요청 방식(어떻게 할 것인가)

> 기본 배경 지식

restful API를 보낼때 URI / HTTP Method / payload를 이용

  • URI(명사)
    해당 사이트의 특정 리소스 위치를 나타내는 "유일한" 주소
    - http://www.naver.com/news => news라는 특정한 리소스의 위치를 나타내는 유일한 주소

  • HTTP Method( get, post, put, delete, patch )(동사)
    HTTP request가 의도하는 action을 정의한 것

  • Payload
    HTTP request에서 server로 보내는 데이터
    (body에 담아보내는 데이터)

> REST API의 장점

  • self-descriptiveness(자기 표현력이 좋다)
    문서나 주석이 없어도 그 자체만으로도 API의 목적이 쉽게 이해가 된다.

> 설계 예시

Path parameter (바로 앞에 있는 리소스의 구체적인 id)

  • HTTP GET http://10.58.4.1:8000/products/1/review

  • HTTP POST http://10.58.4.1:8000/products

    • id는 데이터베이스의 id
    • DB에 등록한 뒤에 생성되는 id이니까 POST할때는 적을 수가 없다.
  • HTTP PATCH http://10.58.4.1:8000/products/1

    • 특정 데이터의 일부 수정
    • 즉, id 1번 데이터가 존재할때 할 수 있다.
  • HTTP DELETE http://10.58.4.1:8000/products/1

Query parameter(검색하는 조건)

  • HTTP GET http://10.58.4.1:8000/products?price=3000원

  • HTTP GET http://10.58.4.1:8000/products?price=3000원&name=사과

  • HTTP GET http://10.58.4.1:8000/products?ordering=-id

    • 정렬하는 조건에도 사용! (id 역순으로 정렬)
  • HTTP GET http://10.58.4.1:8000/products?ordering=-price

    • 낮은가격순/오래된순/최신순 등등
  • HTTP GET http://10.58.4.1:8000/products?offset=0&limit=100

    • pagenation, 100개씩 보여주기
  • HTTP GET http://10.58.4.1:8000/users?search=홍길동

> Path parameter vs Query parameter

언제 어떤 방법을 사용해야 할까?

GET /products/3 vs GET /products?id=3

Path parameter는 두개의 API (GET /products와 GET /products/3)

Query parameter는 단일 API (전체 리스트중에 id=3만 골라낸 것)

Best Practice
Query parameters -> Filtering, Sorting, Searching

profile
비전공으로 일식 쉐프가 되었듯, 배움에 겸손한 프론트엔드 개발자가 되겠습니다 :)
post-custom-banner

0개의 댓글