RESTful API란?

권영균·2021년 5월 17일
0

RESTful API란?

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

API(application programing interface)란?

(interface란 사용자와의 접점)

  • 프로그램에 있어서 사용자와의 접점

URI / HTTP Method / Payload란?

URI(Uniform Resource Identifier)

  • 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
  • resource들을 식별하는 것(url보다 큰 개념)
    (http, https가 빠진 빠졌다고 생각하면 됨)

HTTP Method

  • HTTP request가 의도하는 action을 정의한 것

Payload

  • Http request에서 server로 보내는 데이터(body)

그래서 REST가 뭐냐면

Representational State Transfer

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

REST 방식이 적용된 RESTful API

그럼 장점은 무엇?

  • 여러 장점 중 가장 명확한 장점은 바로 self-descriptiveness이다.
  • RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 된다.

설계 규칙은?

  • URI 정보를 명확하게 표현해야 한다.
    resource는 명사를 사용한다.
    ex) GET/user/1 -> GET/users/1

  • resource에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
    -URI에 HTTP Method가 포함되어서는 안된다.
    ex) GET delete/user/1 -> DELETE/users/1
    -URI에 동사가 포함되서는 안된다.
    ex) GET/user/show/1 -> GET/users/1
    ex) POST insert/user/2 -> POST/users/2

  • resource 사이에 연관 관계가 있는 경우
    -/리소스/고유ID/관계 있는 리소스
    ex) GET/users/{user_id}/profile

  • URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
    ex) GET users/portfolios

  • URI 마지막 문자로 /를 포함하지 않는다.
    ex) GET users/portfolios/ (X)

  • 불가피하게 URI가 길어지는 경우 -을 사용하여 가독성을 높인다.

  • _는 사용하지 않는다.

  • URI 경로에는 대문자 사용을 피하도록 규정하고 있다.

  • 파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다.
    ex) GET user/1/profile-photo.jpg(X) -> GET user/1/profile-photo

(+POST / PATCH / PUT 차이)

  • PATCH는 특정 부분만 업데이트 해줌
  • PUT은 전체를 업데이트 해줌
  • POST는 전부 가능함(심지어 DELETE도 POST로 가능)
    하지만 전부 POST로 하는건 RESTful하지 않다.

Query parameters를 쓸때는 Filtering, Sorting, Searching할 때 사용한다.

profile
GRIT(Growth(성장), Resilience(회복력), Intrinsic Motivation(내재적 동기), Tenacity(끈기))를 중시하는 프론트엔드 개발자입니다.

0개의 댓글