리차드슨은 REST API를 잘 적용하기위한 4단계의 성숙도 모델을 만들었습니다.
실제로 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있고, 이런 경우를 HTTP API라고 부릅니다.
개별 리소스와의 통신을 준수해야 합니다. 즉, 웹에서 사용되는 모든 데이터나 자원을 HTTP URI로 표현합니다.
모든 자원은 개별 리소스에 맞는 엔드포인트를 사용해야하고, 요청하고 받는 자원에 대한 정보를 응답으로 전달해야합니다.
엔드포인트 작성시에는 동사, HTTP 메서드, 혹은 행위에 대한 단어사용은 지양하고 리소스에 집중해 명사형태의 단어로 작성하는 것이 바람직합니다.
응답으로 리소스를 전달할 때에도 리소스 정보와 성공/실패 여부를 반환해야합니다.
🎀 HTTP 메서드 사용 규칙
- GET : 서버의 데이터를 변화시키지 않는 요청에 사용합니다.
- POST 메서드는 요청마다 새로운 리소스를 생성하고, PUT 메서드는 요청마다 같은 리소스를 반환(멱등)합니다. 둘을 구분하여 사용합니다.
- PUT 메서드는 교체시에, PATCH 메서드는 수정의 용도로 구분하여 사용합니다.
HATEOAS(Hypermedia As The Engine Of Application State)라는 하이퍼미디어 컨트롤을 적용합니다.
응답에는 리소스 URI를 포함한 링크 요소를 삽입하여 작성합니다.