개발

[요약] REST API 디자인 규칙 - 01. REST 소개

소년택이 2022. 4. 7. 01:23

웹 아키텍쳐의 제약사항

클라이언트/서버

클라이언트와 서버의 역할을 명백히 분리한다.

균일한 인터페이스

인터페이스는 일관성 있게 분리되어야 한다.

  • 자원 식별 - 요청 자체만으로 대상 자원을 식별할 수 있다 ( ex: uri ).
  • 기술을 통한 자원 처리 - 요청에 포함된 메타데이터를 비롯한 자원에 대한 기술만으로 대상을 충분히 수정하거나 삭제할 수 있다.
  • 자기 서술적 메시지 - 메시지는 자신을 어떻게 처리할 지에 대한 충분한 정보를 제공한다.
  • HATEOAS - 클라이언트의 동작을 위해 별도의 하드코딩이 필요 없으며, 응답 또는 문서 만으로 모든 동작을 기술할 수 있다.
  • 계층 시스템 - 보안, 부하 분산, 응답 속도 개선등의 목적으로 네트워크의 중간 매체를 이용하되, 사용자는 이를 인지하지 못하도록 배치할 수 있다.
  • 캐시 - 캐시를 지원한다.
  • stateless - 웹서버는 클라이언트의 상태를 관리하지 않는다. 클라이언트가 관리한다.

주문형 코드

클라이언트는 스크립트와 플러그인을 통해 (서버로 부터 전달받은 일시적인) 코드를 수행할 수 있다 ( ex: JS )

 

REST API

  • 위의 제약 조건을 REST 라 한다.
  • REST API 는 위 제약조건을 따르는 API 이다.
  • 위 제약조건을 충실히 만족하는 API 를 제공하는 서비스를 RESTful 하다고 한다.