네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나(HTTP Method 등)
REST 구체적 예시
HTTP URI를 통해 자원(Resource)을 표현, HTTP Method를 통해 해당 자원에 대한 상태를 전달
자원(Resource): Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청
행위(Verb): HTTP Method(GET(조회), POST(생성), PUT(기존 entity 전체 수정), PATCH(기존 entity 일부 수정), DELETE(삭제))
표현(Representation of Resource): 리소스 상태에 대한 표현을 요청자에게 전송(JSON, XML, TEXT, RSS 등)
REST 장점
웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있음
범용성, 서버와 클라이언트 역할 분리
다양한 클라이언트의 등장에 대응하기 용이(멀티플랫폼 지원 및 연동)
Open API 를 제공하기 쉽다
REST 단점
HTTP Method 형태가 제한적
REST 6가지 원칙
Uniform Interface : 인터페이스 일관성
Stateless: 클라이언트 상태를 서버에 저장하며 안되고 캐시나 JWT 등을 이용해야함
Caching: 클라이언트는 응답을 캐싱할 수 있어야 함
Client-Server: 클라이언트와 서버는 완전히 분리되어야 함
Hierarchical system : 서버와 클라이언트 사이에 로드밸러서나 캐시 서버 등을 둘 수 있다.
Code on demand : 서버는 클라이언트가 직접 실행할 수 잇는 로직을 전송할 수 있음 (자바스크립트 등)
REST API란?
REST 아키텍처의 제약 조건을 준수하는 API
RESTful이란?
REST 원리를 따르는 시스템
RESTful API를 구현하는 목적은 퍼포먼스 향상이 아닌 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는것
참고개념
API : 사용자(클라이언트)와 리소스 사이의 조정자 역할을 하는 인터페이스로 리소스에 대한 유지관리, 권한관리, 검색방법이나 출처에 대한 지식 없이도 간편하게 원하는 데이터를 요청할 수 있게 함. 특정 시스템과 상호작용하여 원하는 데이터를 얻거나 기능을 수행하고자 할 때 일정한 방법으로 데이터를 요청하고 응답받는다.
JSON : 사용 언어와 상관이 없으며 인간과 컴퓨터가 모두 읽을 수 있어 가장 널리 사용됨