REST 는 Representational State Transfer의 약자로, 웹서비스를 만드는데 사용되는 제약(Constraint) 모음이다. 까다로운 조건들을 다 만족해서 만들면 'RESTful' 하다라고 한다. 이 개념은 Roy Fielding이라는 사람이 "Web을 망가뜨리지않고 어떻게 HTTP를 개선할 수 있을까?" 를 질문을 가지고 연구를 시작하여 만들어지게 되었다.
API 디자인에 있어서 HTTP 프로토콜을 의도에 맞게 사용하도록 정의된 아키텍쳐 스타일이다. REST API의 설계 시, 가장 중요한 항목은 아래 2가지와 같다.
Client-Server
Stateless
Caheable
Uniform interface : 같은 스타일의 API, 동일한 인터페이스
Layered system : 서버나 DB를 알지 못하더라도 api를 쓸 수 있어야하는 시스템
Code on demand
API 사용자가 API에 익숙해지고 나면, 다른 요청도 쉽게 만들 수 있어야 한다,
managed-devices?region=USA
managed-devices?region=USA&brand=XYZ
Verbs | Endpoint | Action |
---|---|---|
GET | /api/users | 모든 사용자 조회 |
POST | /api/users | 새 사용자 리스트 추가 |
PUT | /api/users/{username} | 특정 사용자의 정보 갱신 |
DELETE | /api/users/{username} | 특정 사용자의 정보 삭제 |
GET | /api/users/{username} | 특정 사용자 정보 조회} |
추가자료 : 그런 REST API로 괜찮은가 : Naever DEVIEW 2017 - Youtube
참조사이트
REST - Wikipedia
REST API 제대로 알고 사용하기
Roy Fielding 박사학위논문