[TIL] RESTful API

이나현·2021년 8월 5일
0

개발지식

목록 보기
7/14

1. RESTful API

API 시스템을 구현한기 위한 아키텍처 중에 가장 널리 사용되는 형식
ex) REST etc

1) What is API?

프론트와 백이 통신하기 위한 인터페이스

2) 장, 단점

  • 장점: self-descriptiveness, RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해된다.
  • 단점: 표준규약이 없어서, 안티패턴으로 작성되는 경우가 흔하다. (제대로 활용을 못한다.)

3) 기본 배경 지식

  • URI
    [1] 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
    [2] https://finance.naver.com/login(login => URI)
  • HTTP Method
    get, post, delete, put, patch
    HTTP request가 의도하는 action을 정의한 것
  • Payload
    HTTP request에서 server로 보내는 데이터(body)

    2. 설계 규칙

  • URI 정보를 명확하게 표현해야한다. (resource는 명사를 사용한다.)
  • resource에 대한 행위를 HTTP Method(GET,POST, PUT, DELETE)로 표현한다.

    URI에 HTTP Method가 포함되서는 안된다.
    URI에 동사가 포함되서는 안된다.

  • resource 사이에 연관 관계가 있는 경우(/리소스/고유ID/관계있는 리소스)
    ex) GET/users/{user_id}/profile
  • 파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다.
  • URI는 /구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
  • URI 마지막 문자로 /를 포함하지 않는다.
    ex) GET users/portfolios/(x) > 여기에 연관된 무언가가 또 올 것 같은 암시
  • 불가피하게 URI가 길어지는 경우 - 을 사용하여 가독성을 높인다.
    -_는 사용하지 않는다. > _가 안보여서 가독성이 떨어질 위험성 존재
  • URI 경로에는 대문자 사용을 피하도록 규정하고 있다.

*소비자가 보는 url은 프론트에서 배포하는 url이다.
*RESTFUL URL은 기능별로 명시해야한다.

3. Path parameter, Query parameter

1) Query parameter- filtering 기능 가능
2) Query parameter - ordering: 정렬 가능

  • 역순: 최신순으로 변경 가능
    3) Query parameter - Pagination : 데이터를 끊어서 보내줌
    ex) get/products?offset=0&limit=100
    4) Query parameter - Searching : 일부 user를 검색

path parameter vs Query parameter

  • GET/products/3 === GET/products?id=3
    똑같은 결과.. 언제 어떤 방법을 사용해야 할 까?
  • query parameters: filtering, sorting, searching
    왜? path parameter는 id가 없으면 404 반환하지만, query parameter는 [] 빈정보 반환
  • path parameter는 정보를 식별해야할 필요가 있을 때 에러를 띄워야하기 때문에 사용함

profile
technology blog

1개의 댓글

comment-user-thumbnail
2021년 8월 15일

나현님 잘 정리해주셔서 한 눈에 잘 들어 오네요 감사합니다 :)

답글 달기