클라이언트와 서버가 데이터를 주고받을 때 ‘요청을 구분할 수 있도록 하는 체계’가 필요하다. 그 체계가 API이다.
REST (Representational State Transfer)
: 웹에 존재하는 모든 자원(이미지, 동영상, 데이터)에 고유한 URI를 부여하여 자원(resource)에 대한 주소를 지정하는 방법론, 또는 규칙이다.
REST 특징을 지키면서 API를 제공한다. API 시스템을 구현하기 위한 아키텍처 중에 가장 널리 사용되는 형식이다.
프론트엔드에서 '백엔드 API를 호출할 url을 어떻게 만들것인지'와 관련되는 내용이다.
모든 회사에서 통용되는 절대 규칙은 아니며, 일종의 사회 운동이다. 따라서 다양한 방식으로 변형 사용할 수도 있다.
RESTful API는 CRUD를 하나의 주소로 관리, 어떤 요청을 보냈는지 파악할 수 있는 ‘메소드’를 붙인다. 즉, 그 자체만으로도 API의 목적이 쉽게 이해 된다.
Create : POST (올려줘)
Read : GET (불러와줘)
Update : PUT(전체) & PATCH(일부) (바꿔줘)
Delete: DELETE (지워줘)
단점으로는 표준규약이 없어서 안티패턴으로 작성되는 경우가 흔하다.
/
구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다./
를 포함하지 않는다.-
를 사용해서 가독성을 높이고 _
는 사용하지 않는다.bad | Good |
---|---|
GET http://10.58.4.1:8000/detail_page | GET http://10.58.4.1:8000/product |
GET http://10.58.4.1:8000/main_page | GET http://10.58.4.1:8000/products |
GET http://10.58.4.1:8000/find/product | GET http://10.58.4.1:8000/product |
POST http://10.58.4.1:8000/add/product | POST http://10.58.4.1:8000/product |
POST http://10.58.4.1:8000/product_reviews | POST http://10.58.4.1:8000/products/1/reviews |
POST http://10.58.4.1:8000/product_filter | GET http://10.58.4.1:8000/products?name= |
reference)
wecode_RESTful API
비전공자를 위한 이해할 수 있는 IT지식