REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처고,
REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미한다.
REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP요청의 내용을 이해할 수 있다.
아래는 REST API를 구성하는 3가지 요소로 구성된다.
자원 자체를 나타내며, URI의 엔드포인트로 표현한다.
자원에 대한 행위를 나타내며, HTTP 요청 메서드로 나타낸다.
자원에 대한 행위의 구체적 내용이며, 페이로드로 표현한다.
리소스를 식별할 수 있는 이름은 동사보다는 명사를 사용한다.
# bad
GET /getTodos/1
GET /todos/show/1
# good
GET /todos/1
HTTP요청 메서드는 클라이언트가 서버에게 요청의 종류와 리소스에 대한 행위를 알리는 방법이다.
리소스에 대한 행위는 HTTP요청 메서드를 통해 표현하며 URI에 표현하지 않는다.
아래는 주로 사용하는 5가지 요청메서드이다.
모든/특정 리소스를 취득하기 위해 사용한다.
리소스를 생성하기 위해 사용하고, 생성하려는 값들을 같이 서버로 보낸다.
리소스를 모두 교체한다. 수정하고자 하는 값을 포함해 해당 데이터의 모든 구성요소를 다시 보내야한다.
리소스를 일부 수정한다. 수정하고자 하는 값만 보내면 된다.
모든/특정 리소스를 삭제하기 위해 사용한다.
아래의 예시처럼 특정 리소스를 삭제하려면 URI에 delete를 적는것이 아니라,
DELETE 메서드를 사용해야 한다.
# bad
GET /todos/delete/1
# good
DELETE /todos/1