REST API

Hye·2022년 10월 5일
0

✏️ REST API

  • 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
  • REpresentational State Transfer의 약자
  • 로이 필딩이 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 소개

✏️ 리차드슨의 REST 성숙도 모델

  • 로이 필딩은 모든 단계를 충족해야 REST API라 부를 수 있다고 주장
  • 실제로는 2단계까지만 적용해도 좋은 API 디자인 (HTTP API)

0️⃣ REST 성숙도 모델 - 0단계

  • 단순히 HTTP 프로토콜을 사용하기만 해도 됨
  • 해당 API를 REST API라고 할 수는 없음
  • 좋은 REST API를 작성하기 위한 기본 단계

1️⃣ REST 성숙도 모델 - 1단계

  • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 함
    • 엔드포인트 작성시에는 동사, HTTP 메서드, 어떤 행위에 대한 단어 사용 지양
    • 명사 형태의 단어로 작성
  • 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 함
    • 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부 반환

2️⃣ REST 성숙도 모델 - 2단계

  • CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점
    • GET : 서버의 데이터를 변화시키지 않는 요청에 사용
    • POST : 요청마다 새로운 리소스를 생성, 요청마다 같은 리소스를 반환 (멱등성, idempotent)
    • PUT : 교체의 용도로 사용
    • PATCH : 수정의 용도로 사용

3️⃣ REST 성숙도 모델 - 3단계

  • HATEOAS (Hypertext As The Engine Of Application State) 적용
  • 응답에는 리소스의 URI를 포함한 링크 요소를 삽입해 작성한다는 점이 2단계와 다름
profile
공부중 📚

0개의 댓글

관련 채용 정보