Rest API 란?
"Representational State Transfer"의 약자이며
"응용 프로그램이나 장치가 서로 연결하고 통신하는 방법을 정의하는 규칙 집합"이다.
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것
장점
- 거이 모든 프로그래밍 언어로 개발할 수 있는 다양한 데이터 형식 지원
- 높은 수준의 유연성과 자유를 제공
디자인 규칙
가장 기본적인 수준에서 API는 애플리케이션이나 서비스가 다른 애플리케이션의 서비스 내 리소스에 액세스 할 수 있도록 하는 메커니즘입니다. 접근하는 응용 프로그램이나 서비스를 _클라이언트_라고 하고 리소스를 포함하는 응용 프로그램이나 서비스를 _서버_라고 합니다.
SOAP 또는 XML-RPC와 같은 일부 API는 개발자에게 엄격한 프레임워크를 부과합니다. 그러나 REST API는 거의 모든 프로그래밍 언어를 사용하여 개발할 수 있으며 다양한 데이터 형식을 지원합니다. 유일한 요구 사항은 아키텍처 제약 조건이라고도 하는 다음 6가지 REST 디자인 규칙에 맞춰야 한다는 것입니다.
균일한 인터페이스 (Uniform interface)
- 동일한 리소스에 대한 모든 API 요청은 요청의 출처에 관계없이 동일하게 표시
- REST API는 사용자의 이름이나 이메일 주소와 같은 동일한 데이터가 하나의 URI에만 속하도록 해야 함
- 리소스는 클라이언트가 필요로 하는 모든 정보를 포함해야 하며 너무 크지 않아야 함
클라이언트-서버 분리 (Client-server decoupling)
- 클라이언트와 서버는 완전히 독립적이어야 함
- 클라이언트가 알아야 하는 정보는 리소스의 URI뿐
- 서버는 클라이언트를 수정하거나 간섭해서는 안 됨
무상태성 (Statelessness)
- 모든 요청은 자체적으로 완전해야 하며 서버는 세션 상태를 유지하지 않음
- 요청에 필요한 모든 정보는 요청 자체에 포함되어야 함
캐시 가능성 (Cacheability)
- 리소스는 캐시가 가능해야 하며, 응답에 캐시 허용 여부 포함 필요
- 성능 개선과 서버 부하 감소 목적
계층화된 시스템 아키텍처
- 클라이언트와 서버는 중간 계층을 통해 통신 가능
- 중개자의 존재를 인식하지 못하도록 설계해야 함
주문형 코드 (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을 통해 정의된 계약을 기반으로 통신
참고
'BackEnd' 카테고리의 다른 글
헥사고날 아키텍처(Hexagonal Architecture)_ 추가 수정 필요 (0) | 2024.08.27 |
---|---|
멀티 스레드 환경에 대한 이해 (0) | 2024.02.05 |
Timline 읽어오는법 ( pull/push Model ) (0) | 2024.02.03 |
커버링 인덱스 (0) | 2024.01.25 |
페이지 네이션 방식(오프셋, 커서) 장단점 (0) | 2024.01.25 |