Network

RESTful API란?

테런 2023. 4. 11. 07:57
  • RESTful API 개념
RESTful API는 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스(API)를 뜻합니다. REST는 Representational State Transfer의 줄임말로, 웹에서 사용되는 기존의 인프라를 그대로 활용할 수 있도록 하기 위해 만들어진 아키텍처입니다. RESTful API는 이러한 REST 아키텍처의 제약 조건을 따르면서, HTTP 프로토콜을 통해 데이터를 주고받을 수 있는 API를 의미합니다.

RESTful API는 HTTP 메소드(GET, POST, PUT, DELETE 등)를 사용하여 데이터를 요청하고, JSON이나 XML과 같은 포맷으로 응답합니다. 이러한 RESTful API는 다양한 클라이언트(웹 브라우저, 모바일 앱 등)에서 사용할 수 있으며, 서버와 클라이언트 간의 의사소통을 단순화시키고 유연성을 높여줍니다.

 

  • RESTful API와 SOAP API의 차이점
RESTful API와 SOAP API의 가장 큰 차이점은 SOAP는 프로토콜인 반면 REST는 아키텍처 스타일입니다. API는 서버에서 애플리케이션 비즈니스 로직의 특정 측면을 노출하도록 설계되었으며 SOAP는 서비스 인터페이스를 사용하여 이를 수행하는 반면 REST는 URI를 사용합니다. RESTful API는 HTTP 프로토콜을 사용하며, SOAP API는 XML 기반의 프로토콜을 사용합니다. RESTful API는 보다 데이터 중심적이고, SOAP API는 기능 중심적으로 구조화된 정보를 전송합니다.

 

  • RESTful API 장단점
RESTful API의 장점은 다음과 같습니다. HTTP 프로토콜을 사용하기 때문에 웹 인프라를 그대로 사용할 수 있습니다. HTTP 프로토콜의 표준 메소드(GET, POST, PUT, DELETE)를 이용하여 데이터에 대한 CRUD(Create, Read, Update, Delete) 작업을 쉽게 할 수 있습니다. RESTful API는 URI를 통해 자원(Resource)을 명시하고 HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD 작업을 수행합니다. RESTful API는 HTTP 프로토콜을 사용하기 때문에 SOAP API보다 가볍고 빠릅니다.

단점은 다음과 같습니다. HTTP 메소드의 한계에 묶입니다. 따라서 간단한 수준의 메소드만 지원할 수 있습니다. REST API는 설계 가이드 일뿐, 표준이 아닙니다.

 

  • RESTful API 메소드
RESTful API에서 사용되는 메소드는 HTTP Method로 POST, GET, PUT, PATCH, DELETE 등이 있습니다. 이러한 메소드를 이용하여 데이터에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행합니다.

* GET : 리소스를 조회합니다.
* POST : 리소스를 생성합니다.
* PUT : 리소스를 수정합니다.
* PATCH : 리소스의 일부를 수정합니다.
* DELETE : 리소스를 삭제합니다.

예를 들어, 게시글을 작성하는 RESTful API에서는 다음과 같은 HTTP Method를 사용할 수 있습니다.

* GET /posts : 모든 게시글 조회
* GET /posts/{id} : 특정 게시글 조회
* POST /posts : 게시글 작성
* PUT /posts/{id} : 특정 게시글 수정
* DELETE /posts/{id} : 특정 게시글 삭제

 

  • RESTful한 개발
RESTful하게 개발한다는 것은 RESTful API의 설계 규칙을 따르는 것을 의미합니다. RESTful API는 HTTP 프로토콜을 기반으로 하여 클라이언트와 서버 간 통신을 할 수 있도록 설계된 API입니다. RESTful API는 리소스 지향 아키텍처를 따르며, URI (Uniform Resource Identifier)를 이용해 서버의 리소스에 접근합니다.

RESTful API의 설계 규칙을 따르면서 개발하면, 다음과 같은 장점이 있습니다. HTTP 프로토콜을 사용하기 때문에 기존 웹 인프라를 그대로 사용할 수 있습니다. HTTP Method를 이용하여 CRUD 작업을 수행하기 때문에 직관적이고 쉽게 이해할 수 있습니다. URI를 이용하여 자원을 명시하기 때문에 RESTful API의 구조를 쉽게 파악할 수 있습니다. RESTful API는 다양한 클라이언트에서 사용할 수 있기 때문에 확장성이 좋습니다. 따라서 RESTful하게 개발한다는 것은 RESTful API의 설계 규칙을 따르면서 개발하는 것을 의미합니다.