RESTful API

  • by


📝 2023. 3. 14. TOPIC



✅ REST

Representational State Transfer(REST)는 API가 작동하는 방식에 조건을 부과하는 소프트웨어 아키텍처입니다.

REST는 먼저 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 작성되었습니다.

REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있습니다.

쉽게 구현이 가능하고 변경할 수 있으므로 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다.

REST 아키텍처 스타일에 따른 API를 REST API라고 합니다.

REST 아키텍처를 구현하는 웹 서비스를 RESTful API라고 하며 일반적으로 RESTful API라는 용어는 RESTful Web API를 가리킵니다.

그러나 REST API와 RESTful API라는 용어는 같은 의미로 사용할 수 있습니다.

✅ RESTful API

RESTful API는 두 컴퓨터의 시스템이 인터넷을 통해 정보를 안전하게 교환하는 데 사용하는 인터페이스입니다.

대부분의 비즈니스 애플리케이션은 다양한 작업을 수행하기 위해 다른 내부 애플리케이션이나 타사 애플리케이션과 통신해야 합니다.

예를 들어 월별 급여 품목을 작성하려면 인보이스 발행을 자동화하고 내부 근무 시간 기록 애플리케이션과 통신하기 위해 내부 계정 시스템이 고객의 은행 시스템과 데이터를 공유해야 합니다.

RESTful API는 안전하고 안정적이고 효율적인 소프트웨어 통신 표준을 준수하므로 이 정보 교환을 지원합니다.

RESTful은 REST를 REST로 사용하는 방법으로 공식적으로 발표된 특정 방법이 아닙니다.

즉, REST 원리에 따른 시스템을 RESTful이라는 용어라고합니다.

RESTful API의 목적은 이해하기 쉽고 사용하기 쉬운 REST API를 작성하여 API의 이해도와 호환성을 높이는 것이 주요 목적입니다.

따라서 성능이 중요한 상황에서는 RESTful API를 구현할 필요가 없습니다.

✅ RESTful API를 사용하는 이점

  1. 확장성
    • REST API를 구현하는 시스템은 REST가 클라이언트와 서버 간의 상호 작용을 최적화하므로 효율적으로 크기를 조정할 수 있습니다.

    • 무상태이면 서버는 과거 클라이언트 요청 정보를 유지할 필요가 없으므로 서버의 로드를 제거합니다.

    • 잘 관리되는 캐시는 일부 클라이언트와 서버 간의 상호 작용을 부분적으로 또는 완전히 제거합니다.

    • 위의 기능은 성능을 저하시키는 통신 병목 현상을 일으키지 않고 확장성을 지원합니다.

  2. 유연성
    • RESTful 웹 서비스는 전체 클라이언트와 서버 간의 분리를 지원합니다.

    • 각 부분이 독립적으로 진화할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리합니다.

    • 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 미치지 않습니다.

    • 애플리케이션 함수를 계층화하는 기능을 통해 유연성을 더욱 향상시킬 수 있습니다.

  3. 독립성
    • REST API는 사용되는 기술과 무관합니다.

    • API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트와 서버 응용 프로그램을 모두 만들 수 있습니다.

    • 통신에 영향을 주지 않고 두 가지 기본 기술을 변경할 수 있습니다.

✅ RESTful API의 작동 방식

RESTful API의 기본 기능은 인터넷 브라우징과 동일합니다.

클라이언트는 리소스가 필요할 때 API를 사용하여 서버에 연결합니다.

API 개발자는 서버 애플리케이션 API 문서에서 클라이언트가 REST API를 사용하는 방법을 설명해야 합니다.

모든 REST API 호출의 일반적인 단계는 다음과 같습니다.

  1. 클라이언트는 서버에 요청을 보냅니다.

    클라이언트는 API 문서에 따라 서버가 이해하도록 요청 형식을 지정해야 한다.

  2. 서버가 클라이언트를 인증하고 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인합니다.

  3. 서버는 요청을 받고 내부적으로 처리합니다.

  4. 서버는 클라이언트에 응답을 리턴합니다.

    응답에는 요청이 성공했는지 여부를 클라이언트에 알리는 정보가 포함되며 클라이언트가 요청한 모든 정보도 함께 반환됩니다.

✅ RESTful API 클라이언트 요청을 포함하는 항목

RESTful API에는 다음 주요 구성요소를 포함하는 요청이 필요합니다.

  • 고유 리소스 식별자
    • 서버는 고유한 자원 식별자로 각 자원을 식별합니다.

    • REST 서비스의 경우, 서버는 일반적으로 URL(Uniform Resource Locator)을 사용하여 자원 식별을 수행합니다.

    • URL은 웹 페이지에 액세스하기 위해 브라우저에 입력하는 웹 사이트의 주소와 유사하며 요청 엔드포인트라고도 합니다.

  • 방법
    • GET: 클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스합니다.

      GET 요청을 캐싱하고 RESTful API 요청에 매개변수를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시할 수 있습니다.

    • POST: 클라이언트는 POST를 사용하여 서버로 데이터를 보냅니다.

      요청과 함께 데이터 표현을 포함합니다.

      동일한 POST 요청을 여러 번 보내면 동일한 리소스를 여러 번 생성하는 부작용이 발생합니다.

    • PUT: 클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트합니다.

      POST와 달리 동일한 PUT 요청이 여러 번 전송 되더라도 결과는 동일합니다.

    • DELETE: 클라이언트는 DELETE 요청을 통해 자원을 삭제합니다.

      DELETE 요청은 서버 상태를 변경할 수 있지만 사용자에게 적절한 인증이 없으면 요청이 실패합니다.

  • HTTP 헤더: 요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터입니다.

    예를 들어, 요청 헤더는 요청 및 응답의 형태를 나타내며 요청 상태 등에 관한 정보를 제공한다.

    • 데이터: REST API 요청에는 메소드 등이 제대로 작동하기 위한 데이터가 포함될 수 있습니다.

    • 파라미터: 수행해야 할 태스크에 대한 상세 정보를 서버에 제공하는 파라미터를 포함할 수 있다.

      매개변수 유형에는 URL 세부사항을 지정하는 경로 매개변수, 자원에 대한 추가 정보를 요청하는 조회 매개변수, 클라이언트를 신속하게 인증하는 쿠키 매개변수 등이 있습니다.


👀 Reference

1. https://aws.amazon.com/en/what-is/restful-api/

RESTful API란 무엇입니까? – RESTful API 설명 – AWS

Amazon API Gateway는 개발자가 모든 규모에서 API를 손쉽게 생성, 게시, 유지보수, 모니터링 및 보안을 유지할 수 있는 완전 관리 서비스입니다.

API Gateway를 사용하면 실시간 양방향 통신

aws.amazon.com

2. https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html\

(네트워크) REST란 무엇입니까? REST API란? RESTful이란? – Heee’s Development Blog

Step by step goes a long way.

gmlwjd9405.github.io