BackEnd

Rest API 란?

Raconer 2023. 4. 15. 19:43
728x90

Rest API 란?

"Representational State Transfer"의 약자이며
"응용 프로그램이나 장치가 서로 연결하고 통신하는 방법을 정의하는 규칙 집합"이다.
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것

장점

  • 거이 모든 프로그래밍 언어로 개발할 수 있는 다양한 데이터 형식 지원
  • 높은 수준의 유연성과 자유를 제공

디자인 규칙

가장 기본적인 수준에서 API는 애플리케이션이나 서비스가 다른 애플리케이션의 서비스 내 리소스에 액세스 할 수 있도록 하는 메커니즘입니다. 접근하는 응용 프로그램이나 서비스를 _클라이언트_라고 하고 리소스를 포함하는 응용 프로그램이나 서비스를 _서버_라고 합니다.

SOAP 또는 XML-RPC와 같은 일부 API는 개발자에게 엄격한 프레임워크를 부과합니다. 그러나 REST API는 거의 모든 프로그래밍 언어를 사용하여 개발할 수 있으며 다양한 데이터 형식을 지원합니다. 유일한 요구 사항은 아키텍처 제약 조건이라고도 하는 다음 6가지 REST 디자인 규칙에 맞춰야 한다는 것입니다.

  1. 균일한 인터페이스 (Uniform interface)

    • 동일한 리소스에 대한 모든 API 요청은 요청의 출처에 관계없이 동일하게 표시
    • REST API는 사용자의 이름이나 이메일 주소와 같은 동일한 데이터가 하나의 URI에만 속하도록 해야 함
    • 리소스는 클라이언트가 필요로 하는 모든 정보를 포함해야 하며 너무 크지 않아야 함
  2. 클라이언트-서버 분리 (Client-server decoupling)

    • 클라이언트와 서버는 완전히 독립적이어야 함
    • 클라이언트가 알아야 하는 정보는 리소스의 URI뿐
    • 서버는 클라이언트를 수정하거나 간섭해서는 안 됨
  3. 무상태성 (Statelessness)

    • 모든 요청은 자체적으로 완전해야 하며 서버는 세션 상태를 유지하지 않음
    • 요청에 필요한 모든 정보는 요청 자체에 포함되어야 함
  4. 캐시 가능성 (Cacheability)

    • 리소스는 캐시가 가능해야 하며, 응답에 캐시 허용 여부 포함 필요
    • 성능 개선과 서버 부하 감소 목적
  5. 계층화된 시스템 아키텍처

    • 클라이언트와 서버는 중간 계층을 통해 통신 가능
    • 중개자의 존재를 인식하지 못하도록 설계해야 함
  6. 주문형 코드 (Optional)

    • 정적 리소스 외에 실행 가능한 코드도 포함 가능 (예: Java 애플릿 등)

REST API 작동 방식

REST API는 CRUD(Create, Read, Update, Delete)를 HTTP 메서드로 매핑하여 작동합니다.

  • GET: 리소스 조회
  • POST: 리소스 생성
  • PUT: 리소스 전체 업데이트
  • PATCH: 리소스 일부 업데이트
  • DELETE: 리소스 삭제

리소스 표현 (Representation)
리소스의 상태는 JSON, XML, HTML 등 다양한 형식으로 표현될 수 있으며, 일반적으로 JSON이 가장 많이 사용됨

요청 헤더와 파라미터는 인증, 캐싱, 쿠키 등과 관련된 메타데이터를 담고 있으며, 응답 시 HTTP 상태 코드와 함께 제공됨


SOAP 이란?

SOAP은 웹 서비스 상호작용에서 사용되는 XML 메시지 형식입니다.
일반적으로 HTTP 또는 JMS 위에서 동작하며, 더 엄격하고 포맷이 고정된 구조를 가짐
WSDL을 통해 정의된 계약을 기반으로 통신


참고

728x90