RESTful API (또는 RESTful URL) : 현재 사용되고 있는 API 설계 규칙 가운데 가장 널리 사용되고 있는 규칙

1. REST하다

리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현

(ex.) OO전자 주식 정보를 받기 위한 HTTP 요청
      HTTP GET https://api.trueshort.com/stock/005930
  • REST(REpresentational State Transfer)란 웹에 존재하는 모든 자원(resorce, ex. 이미지, 동영상, 데이터)에 고유한 URI를 부여하여 자원에 대한 주소를 지정하는 방법론, 또는 규칙

2. RESTful API란?

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

(1) RESTful API는 REST 특징을 지키면서 API를 제공한다는 의미

  • 프론트엔드에서 백엔드 API를 호출할 URL을 어떻게 만들것인가? 에 대한 이야기

  • URI(Uniform Resource Identifier) : 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소

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

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

(2) RESTful API의 장점

  • Self-descriptiveness : RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 됨

3. RESTful API 설계 규칙

(1) URI 정보를 명확하게 표현

  • resource는 명사를 사용

(2) 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

(3) resource 사이에 연관 관계가 있는 경우

  • /리소스/고유ID({변수이름})/관계 있는 리소스
    ex. GET /users/{user_id}/profile

(4) URI는 '/' 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용

(5) URI 마지막 문자로 '/' 를 포함하지 않음

(6) 불가피하게 URI가 길어지는 경우 '-' 을 사용하여 가독성을 높임

(7) '_' 는 사용하지 않음

(8) URI 경로에는 대문자 사용을 피하도록 규정

(9) 파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않음

4. Path parameter(variable)

해당 리소스에 대한 더 자세한 정보를 얻기 위해 접근할 때 사용

  • 어떤 resource를 식별하고 싶으면 Path parameter(variable)를 사용
    ex. GET /users/123
    -> 아이디가 123인 사용자를 가져옴
    -> 123 을 서버단에 전달. 경로를 변수로서 사용

5. Query parameter(string)

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

  • 웹 페이지의 URL 주소를 자세히 보면 종종 ? 가 포함되어 있음. 이 물음표는 단순한 문자열이 아닌 특정한 기능을 수행하고 있음

  • 물음표 뒤에는 늘 key=value 형식의 문자열이 따라옴

<출처> wecode(코딩 부트캠프) 세션

0개의 댓글