본문 바로가기

What I Learnd/TIL

TIL - REST API 개념과 예시

REST API : REpresentational State Transfer, RESTful API는,

REST 아키텍처 스타일의 제약 조건을 준수하고 RESTful 웹 서비스와 상호 작용할 수 있도록 하는 애플리케이션 프로그래밍 인터페이스(API 또는 웹 API)로 어떤 자원에 대해 CRUD를 진행할 수 있게 HTTP Method(GET, POST, PUT, DELETE)를 사용하여 요청을 보내는 것을 말한다. 이 때 요청을 위한 자원은 특정한 형태로 표현된다.

☝ URI를 통해 정보의 자원을 표현하고(진짜 자원만 표현), 자원의 행위는 HTTP Method로 명시한다.

  • 자원(Resource): URI
  • 행위(Verb):  HTTP Method
  • 표현(Representations)
GET/users/3/profile

☝ 누구라도 user 중에서 3번 아이디를 가지고 있는 사람의 프로필을 내놔라. 라는 뜻.

 

예시


// bad : URI에 delete가 들어가 있어서
GET /members/delete/1
// good
DELETE /members/1

// bad : 이 또한 URI에 굳이 show라는 행위가 들어가 있음
GET /members/show/1
// good
GET /members/1

// bad : 같은 이슈, 여기서는 insert 대신 아래와 같이 POST라는 HTTP 메소드를 사용해줄 수 있다.
GET /members/insert/2
// good
POST /members/2

 

규칙


  • URI는 명사를 사용하고 소문자로 작성한다
  • 명사는 복수형을 사용한다
  • URI의 마지막에는 /를 포함하지 않기
  • URI에는 언더바 대신 하이픈을 사용한다
  • URI에는 파일의 확장자를 표시하지 않는다
http://example.com/posts     (O)
http://example.com/posts/    (X)
http://example.com/post      (X)
http://example.com/get-posts (X)
--> URI는 명사를 사용하고 소문자로 작성되어야 한다.
--> 명사는 복수형을 사용한다.
--> URI의 마지막에는 /를 포함하지 않는다.

http://example.com/post-list  (O)
http://example.com/post_list  (X)
--> URI에는 언더바가 아닌 하이픈을 사용한다.

http://example.com/post/assets/example  (O)
http://example.com/post/assets/example.png  (X)
--> URI에는 파일의 확장자를 표시하지 않는다.

 

Path Variable vs Query Parameter


REST한 개발을 하다 보면, GET method를 이용하여 데이터를 가져올 때 등의 경우에서 Path Variable과 Query Parameter에 대한 의논과 결정이 필요

Path Variable 

:경로 자체에 변수(10)를 사용한 방법, 전체 데이터 또는 특정 하나의 데이터를 다룰 때 처럼, 리소스를 식별하기 위해 사용

/users/10

 

Query Parameter

: 데이터를 정렬하거나 필터링 하는 경우 더 적합

/users?user_id=10

 

Examples

 

/users # Fetch a list of users
/users?occupation=programer # Fetch a list of programer user
/users/123 # Fetch a user who has id 123

 

 

이번 프로젝트 API RESTful 하게 작성해봐야지