: REST 아키텍쳐 스타일에 부합하는 API
HTTP 메서드를 사용하여 자원에 대한 행위를 표현한다.
메시지는 스스로에 대해 설명해야 한다
1) 이를 위해 Host 헤더에 도메인명을 기재하여 요청 대상을 찾을 수 있도록 해야 합니다.
-> ip만으로는 요청 대상을 찾아낼 수 없으므로
2) 캐싱 전략을 지정하기 위해 캐시 관련 헤더를 사용할 수 있습니다.
ex) cache-control , age , etag , vary
HATEOAS (Hypermedia as the Engine of Application State)
클라이언트에게 애플리케이션 상태를 변경할 수 있는 인터페이스를 제공해야 한다.
간결하고 직관적인 인터페이스: REST API는 URL과 HTTP 메서드를 통해 자원에 대한 행위를 표현합니다. 이는 개발자가 직관적으로 API를 이해하고 사용할 수 있도록 도와줍니다.
자원의 명확한 식별: REST API는 각 자원에 고유한 URL을 할당하여 자원을 식별합니다. 이를 통해 클라이언트는 명확하게 특정 자원을 식별하고 요청할 수 있습니다.
플랫폼 독립성: REST API는 HTTP 프로토콜을 기반으로 동작하므로 플랫폼에 독립적입니다. 이는 다양한 클라이언트와 서버 간의 상호 운용성을 높여줍니다.
캐싱을 통한 성능 향상: REST API는 캐시를 활용할 수 있는 기능을 제공합니다. 클라이언트는 캐시된 데이터를 사용하여 네트워크 부하를 줄이고 응답 시간을 단축할 수 있습니다.
확장성과 유연성: REST API는 자원 중심의 아키텍처를 따르므로 새로운 자원을 추가하거나 기존 자원을 변경하는 것이 비교적 쉽습니다. 이는 시스템의 확장성과 유연성을 높여줍니다.
다양한 클라이언트 지원: REST API는 다양한 클라이언트, 예를 들어 웹 브라우저, 모바일 앱, 데스크톱 애플리케이션 등에서 사용할 수 있습니다. 이는 클라이언트의 다양한 플랫폼과 기기에서 API를 활용할 수 있는 장점을 제공합니다.
테스트 용이성: REST API는 HTTP 프로토콜을 사용하므로 다양한 테스트 도구를 활용하여 API를 테스트할 수 있습니다. 이는 개발자가 API를 쉽게 테스트하고 디버깅할 수 있도록 도와줍니다.
서비스의 재사용성: REST API는 자원 중심의 아키텍처를 따르므로 다른 애플리케이션에서도 동일한 자원을 활용할 수 있습니다. 이는 서비스의 재사용성을 높여줍니다.