[Web] REST API 란 무엇일까?
2024. 8. 6. 18:59ㆍ개발 지식/Basic
'RESTful API' 또는 'RESTful Web API' 라고도 불리우는 'REST API' 에 대해 알아보려 한다.
1. 정의
'REST' 아키텍처 스타일의 설계원칙을 준수하는 `API' 이다. 즉, 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스라 할 수 있다.
2. 이점
- 확장성 : 'REST' 가 클라이언트-서버 간의 상호작용을 최적화 하므로 효율적인 크기 조정이 가능함
- 유연성 : 완전한 클라이언트-서버의 분리를 지원한다. 각 부분이 독립적으로 발전할 수 있게 다양한 서버 구성 요소를 단순화하고 분리하기에 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않는다.
- 독립성 : 사용되는 기술과 독립적이므로 설계에 영향을 주지 않고, 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있다. 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경 가능하다.
3. 어떻게 작동?
기본 기능은 인터넷 브라우징과 동일하다. 클라이언트가 리소스 필요시 API 를 사용해 서버에 접속, API 개발자는 서버 애플리케이션 API 문서에서 클라이언트가 REST API 를 어떻게 사용해야 하는지 설명한다. 아래의 단계는 일반적인 REST API 호출 단계이다.
- 클라이언트가 서버에 요청 전송, API 문서에 따라 서버가 이해하는 방식으로 요청형식을 지정
- 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 있는지 확인
- 서버가 요청을 수신 및 내부적으로 처리
- 서버가 클라이언트에 요청에 대한 응답을 반환, 해당 응답은 요청의 성공 여부 및 클라이언트가 요청한 정보도 포함된다.
※ 참고 : 물론 REST API 요청 및 응답 세부 정보는 개발자가 설계하는 방식에 따라 조금씩 다를 수 있다.
4. 클라이언트 요청시 포함되는 정보
- 고유 리소스 식별자 : 서버의 경우 고유한 리소스 식별자로 각 리소스를 식별한다. 일반적으로 'URL' 을 사용하여 리소스 식별을 수행한다. 여기서 'URL' 은 요청 엔드포인트라고도 하며 클라이언트의 요구사항을 서버에 명확히 지정한다.
- 메서드 : HTTP 메서드는 수행해야 하는 작업을 서버에 알려준다. 아래의 4가지 메서드는 HTTP의 일반적인 메서드이다.
- GET : 서버에 지정된 URL 에 있는 리소스에 접근한다. 추가적으로 파라미터를 넣어 전송하면 데이터를 필터링하도록 서버에 지시할 수 있다.
- POST : 클라이언트가 서버에 데이터를 전송할 때 사용한다. 요청과 함께 데이터 표현이 포함되며, 동일한 POST 요청을 여러번 할 경우 동일한 리소스가 여러 번 생성되는 부작용이 있다.
- PUT : 서버의 기존 리소스를 업데이트 할 때 사용한다. POST 와는 다르게 동일한 PUT 요청을 여러 번 해도 결과가 동일하다.
- DELETE : 리소스 제거시 사용한다. 해당 메서드 요청은 서버를 변경할 수 있으나 사용자가 적절한 인증이 없다면 요청은 수행되지 않는다.
- HTTP 헤더 : 요청 헤더는 클라이언트와 서버 간 교환되는 메타데이터이다. 요청 헤더는 요청 및 응답 형식을 나타내며, 요청 상태 등에 대한 정보를 제공한다.
- 데이터 : POST, PUT 등의 기타 HTTP 메서드의 성공적 동작을 위한 데이터가 포함될 수 있다.
- 파라미터 : 수행 작업에 대한 자세한 정보를 제공하는 역할. 여러 유형을 가지고 있으며 대표적으로 경로 파라미터(URL 세부정보를 지정), 쿼리 파라미터(리소스 추가 정보 요청), 쿠키 파라미터(빠른 클라이언트 인증) 등의 유형들이 있다.
참고 문서
'개발 지식 > Basic' 카테고리의 다른 글
[Web] API (0) | 2024.08.06 |
---|---|
[Web] REST (0) | 2024.08.06 |
[Web] TCP/IP (0) | 2024.08.02 |
[Web] Protocol (0) | 2024.08.02 |
[Web] 웹 사이트와 웹 페이지 (0) | 2024.07.31 |