여러 사이드 프로젝트나 개인 프로젝트를 하면서 REST API를 구현했었다.(라고 믿고 있었다.)
최근 후배들과 공모전 프로젝트를 진행하면서 서버 관련 스터디를 진행했다. 그때 API가 무엇인지, 거기서 REST API가 무엇인가에 대해 스터디 준비를 하는데 다음 발표 영상을 봤다.
이 영상의 핵심은 최근 REST API라고 하는(주장하는) API들은 실상 REST 규칙을 전혀 지키지 못한 HTTP API라고 하며 이 REST 규칙을 지키기 위해서 필요한 조건에 대해 설명했다.
따라서 이 REST API를 만족하는 API를 만들어볼 예정이며 inflearn에서 다음 강좌를 참고할 예정이다.
발표에서 언급한 REST API의 정의는 아래와 같다.
REST API란 REST 아키텍쳐를 따르는 API로 시스템 각각의 의존성을 낮춰서 독립적인 진화를 보장하기 위한 방법
여기서 말하는 REST 아키텍처 스타일은 6개의 제약 조건을 따르는 API이다.
발표에서는 API들이 잘 지키지 않는 제약조건으로 Uniform Interface로 언급했으며 그 중에서도 Self-descriptive message와 HATEOAS라고 했다.
● Self-descriptive message
○ 메시지 스스로 메시지에 대한 설명이 가능해야 한다.
○ 서버가 변해서 메시지가 변해도 클라이언트는 그 메시지를 보고 해석이 가능하다.
○ 확장 가능한 커뮤니케이션
● HATEOAS
○ 하이퍼미디어(링크)를 통해 애플리케이션 상태 변화가 가능해야 한다.
○ 링크 정보를 동적으로 바꿀 수 있다.
이번 사이드 프로젝트를 통해서
를 만들어볼 계획이다.