리차드슨의 REST 성숙도 모델

0단계 - 단순히 HTTP 프로토콜을 사용
1단계 - URI 사용
: 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현, 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용하여 요청, 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다
: 어떤 리소스를 변화시키는지 혹은 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에, 적절한 엔드포인트를 작성하는 것이 중요
: 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직 방법
: 요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환해야 함
2단계 - HTTP 메서드 원칙 준수
: CRUD에 맞게 적절한 HTTP 메서드를 사용하고 그에 따른 응답 코드도 명확하게 작성되어야 함
: 보통 2단계까지 적용을 하면 대체적으로 잘 작성된 API
: 멱등성(idempotent : 연산을 여러 번 적용하더라도 결과 값이 달라지지 않는 성질)을 가지는 메서드를 잘 구분하여 사용해야 함

3단계 - 하이퍼미디어 컨트롤 적용
: 응답에 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
이미지 출처
https://velog.velcdn.com/images/sangbin2/post/bed6d0ff-d2df-41e1-a412-bee9bf93d724/image.png
https://hudi.blog/static/6fa55f3924832c12bf4be206a2bf6ad7/ca1dc/idempotence.png