-
REST API & RESTFUL APICS 2024. 1. 7. 17:00
REST
자원을 이름으로 구분하여 해당 자원의 정보를 주고 받는 모든 것을 의미
여기서 자원이란, 소프트웨어가 관리하는 모든 것을 의미한다. 문서와 그림, 데이터 그리고 소프트웨어 자체도 자원이 될 수 있다.
REST API(Representational State Transfer API)
REST를 기반으로 HTTP 프로토콜을 사용하여 데이터를 주고 받는 API
REST API 특징
- 클라이언트-서버 모델: 클라이언트와 서버는 서로 독립적으로 동작한다. 클라이언트는 서버에서 데이터를 요청하고, 서버는 데이터를 응답한다.
- 무상태성: HTTP는 상태가 없는 프로토콜로, 클라이언트가 서버에 요청을 보내면 서버는 그 요청에만 응답하고, 클라이언트의 상태를 저장하지 않는다.
- 자원 기반: 데이터는 자원으로 표현되는데, 자원은 URI로 식별되며, HTTP 메소드를 사용하여 조작된다.
- 캐시가능성: 서버는 자원이 캐시 가능한지 명시해야 한다.
- 계층형 시스템: REST 서버는 계층형으로 구성될 수 있다. 이렇게 되면 구조상에서 유연성을 줄 수 있다.
- 유니폼 인터페이스: URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일이다.
REST API의 기본 구성 요소는 다음과 같다.
- 자원: URI는 자원을 식별하는 주소이다. REST API에서는 명사를 사용하여 자원을 표현하는데, /users는 사용자 목록을 표현하는 자원을 나타낸다.
- 행위: HTTP 메소드 자원에 대한 행위를 표현한다. GET, POST, PUT, DELETE 등의 기본 메소드를 사용한다.
GET POST PUT DELETE 자원 조회 자원 생성 자원 수정 자원 삭제 - 표현: HTTP 상태 코드 응답 상태를 표현한다. 코드는 다음과 같다.
200번대 400번대 500번대 성공 클라이언트 오류 서버 오류 REST API 장단점
장점 단점 HTTP의 기본 메소드와 리소스 URI를 사용하여 데이터를 표현하고 조작하기에 간결하고 직관적이다. 자원 기반의 설계가 어려울 수 있다. 확장성이 뛰어나서 새로운 기능을 추가하거나
기존 기능을 변경하기 쉽다.HTTP 메소드의 제한으로 인해 구현이 복잡해질 수 있음 호환성이 뛰어나서 다양한 플랫폼에서 사용할 수 있다. REST 표준이 존재하지 않는다. 그렇기에 REST API는 웹 애플리케이션, 모바일 애플리케이션, 클라우드 서비스 등의 다양한 분야에서 사용되고 있다.
RESTful
REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위한 용어
즉, REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있는 것이다.
RESTful API
REST API의 원칙을 잘 지키는 API를 의미
이러한 RESTful은 누군가 정의한 것이 아닌 REST를 REST답게 쓰기위한 방법이다. 이해하기 쉽고 사용하기 쉬운 REST API를 만들어 API의 이해도와 호환성을 높이는 것을 주목적으로 하기에, 성능이 중요한 상황에서는 RESTful API를 꼭 구현할 필요는 없다.
'CS' 카테고리의 다른 글
node.js 환경 vs 브라우저 환경 (1) 2024.01.10 Vue vs React (프레임워크 vs 라이브러리) (0) 2024.01.09 세션과 쿠키, 그리고 웹 스토리지 (1) 2024.01.07 JS(JavaScript) 문법 (0) 2023.12.03 서버와 클라이언트 (1) 2023.12.03