TIL15 | 내가 보려고 올리는 - " [API] RESTful API "

이형준·2022년 4월 27일
0

What RESTful API

: API 시스템을 구현하기 위한 아키텍처 중에 가장 널리 사용하는 형식

REST ? : REpresentational State Transfer

  • 장점 : 비용이 저렴하다, 진입장벽이 낮다 -> 저비용 고효율

사전적 정의 : 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식.
즉, 리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method~)

  • 장점 : selg-descriptiveness(스스로 자명함), RESTful는 그 자체만으로도 API의 목적이 쉽게 이해 된다.

  • 단점 : 표준규약이 없어 안티패턴(실제로 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴)이 작성되는 경우가 흔한다

기본 배경 지식

URI / HTTP Method / Payload : 삼단구성

  • URI : 해당 사이트의 특정자원의 위츠를 나타내는 유일한 주소
  • HTTP Method : HTTP request가 의도하는 action을 정의한 것
  • payload : HTTP requset에서 server로 보내는 데이터

HTTP 의 숨어있는 약속

How

  1. url 은 page 기준이 아닌 resource 기준으로 작성합니다.
    [GET] http://127.0.0.1:8000/product/main_page_product

  2. 메인 페이지에 표출되어야할 정보가 무엇인지 판별하여 url을 정합니다.

  3. 한 번에 여러 종류의 정보를 표출해야 한다면, 프론트엔드 개발자와 협의하여 REST에 맞춰 두가지 이상의 endpoint를 동시에 호출합니다.

  4. 우리 웹 서비스 메인페이지에 여름특가 이벤트 + 사용자의 내 상세 정보
    [GET] http://127.0.0.1:8000/store/find_store

  5. 동사(find)를 사용하지 않습니다.
    [POST][http://127.0.0.1:8000/product/add_first_item_information]

  6. 자원을 추가(add)할 때는 ~/post 만으로 충분합니다.
    [GET][http://127.0.0.1:8000/store](http://127.0.0.1:8000/store/search_store)?name='강남'

  7. 검색 기능은 자원의 정보를 호출하는 기능이므로 [GET] method를 사용합니다.

  8. 검색 키워드는 body를 통해 전달하지 않고, query string을 활용합니다.

Query parameters (GET parameters)

쿼리 파라미터 혹은 쿼리 스트링에 대해 들어보신 적이 있나요? 웹 페이지의 url 주소를 자세히 보면 종종 ? 가 포함되어 있는 것을 보셨을 것입니다. 이 물음표는 단순한 문자열이 아닙니다. 특정한 기능을 수행하고 있죠. 물음표 뒤에는 늘 key=value 형식의 문자열이 따라옵니다. 이를 Query parameter 라고 부릅니다.

주로 데이터를 조건으로 거르거나(filtering), 특정 방식으로 정렬하거나(sorting), 검색(searching)하고자 하는 경우에 활용됩니다.

Path parameters

쿼리 파라미터와 유사해보이지만 그 역할이 완전히 다른 Path parameter도 있습니다. 해당 리소스에 더 자세한 정보를 얻기 위해 접근할 때 사용합니다.

profile
프론트엔드 개발자 이형준입니다.

0개의 댓글