REST(Representational State Transfer)는 웹 서비스에서 자원을 이름(URI)으로 구분하여 해당 자원의 상태(리소스)를 주고 받는 아키텍처 스타일이다
REST API는 이러한 REST 아키텍처를 기반으로 만들어진 API로, 클라이언트와 서버 사이의 통신을 위한 표준 방식을 제공한다.
REST API는
1) HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시
2) HTTP 프로토콜을 기반으로 하며, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 사용하여
3) 자원(URI)에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하는 것을 의미한다
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는다
REST API는 REST 원칙에 기반한 웹 서비스를 일컫는 반면, RESTful API는 REST 원칙을 정확하게 따르는 API를 의미한다. 즉, RESTful API는 REST 아키텍처의 모든 제약 조건과 원칙을 엄격하게 준수하는 API를 지칭한다.
URL은 명사로 구성되어야 한다.
ex) /orders : 주문에 대한 정보
URL은 소문자로 작성되어야 하며, 언더스코어(_)대신 하이픈(-)을 사용하여 단어를 구분한다
ex) /product-categories
URL의 경로는 리소스 간의 계층 구조를 반영해야 한다.
ex) /orders/1234 : id가 1234인 주문에 대한 정보
URL의 마지막에는 슬래시(/)를 포함하지 않아야 한다.
ex) /orders/ (X) -> /orders (O)
URL에는 동사나 행위를 나타내는 단어를 사용하지 않는다.
대신 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 행위를 나타낸다.
파일 확장자는 URI에 포함시키지 않는다
컬렉션은 복수형으로 표현한다
ex) /users, /orders