728x90
REST API란 REST의 원리를 따르는 API를 의미하고, RESTFUL이란 REST의 원리를 따르는 시스템을 의미한다
그렇다면 REST란 무엇일까?
REST란 HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
REST는 자원(Resource), 행위(Verb), 표현(Representation)의 세 가지 요소로 구성된다
- 자원(Resource): `http://example.com/users/1`는 ID가 1인 사용자 자원을 식별
- 행위(Verb): GET, POST, PUT, DELETE를 통해 자원에 대한 동작을 정의
- 표현(Representation): JSON, XML 등의 형식으로 데이터를 전송
REST의 특징
- 서버-클라이언트 구조: 클라이언트와 서버 간의 역할 분리를 통해 각각의 독립성을 유지
- 무상태 : 각 요청은 독립적이며, 서버는 클라이언트의 이전 요청 상태를 저장하지 않는다
- 캐시 처리 가능: 서버 응답은 캐시될 수 있어 성능을 최적화
- 계층화: 시스템은 계층화되어 있으며, 클라이언트는 중간 서버를 통해 자원에 접근 가능
- 인터페이스 일관성: 자원 접근 방식의 일관성을 유지하여 시스템 아키텍처를 단순화
장점
- HTTP 프로토콜 활용: REST API는 HTTP의 인프라를 그대로 사용하여 별도의 추가 인프라가 필요 없다
- 플랫폼 독립성: HTTP 표준을 따르므로 다양한 플랫폼에서 사용 가능
- 명확한 의도 표현: REST API 메시지는 의도를 명확하게 나타내어 이해하기 쉽다
- 서버와 클라이언트의 역할 분리: 클라이언트와 서버 간의 명확한 역할 분리로 유지보수성 향상
단점
- 표준 부재: REST 자체가 표준이 아니기 때문에 구현에 있어 정의가 필요
- HTTP Method 제한: HTTP 메서드 형태가 제한적
- 전문성 요구: 헤더 정보를 처리해야 하므로 브라우저를 통한 테스트가 복잡
- 구형 브라우저 호환성: 일부 구형 브라우저는 REST API와의 호환성 문제 존재
REST API
REST의 원리를 따르는 API
REST API 규칙
- URI는 동사보다 명사를 사용하고, 소문자를 사용
- URI의 마지막에 슬래시 (/)를 포함하지 않는다
- 언더바(_) 대신 하이픈(-)을 사용
- URI에 행위를 포함하지 않는다
RESTFUL
REST의 원리를 따르는 시스템을 의미, RESTful 시스템은 REST API 설계 규칙을 올바르게 지키고, 자원 관리와 상호작용을 일관성 있게 구현
RESTFUL 예시
- GET http://example.com/products는 모든 제품을 조회
- POST http://example.com/products는 새 제품을 추가
- PUT http://example.com/products/1는 ID가 1인 제품을 수정
- DELETE http://example.com/products/1는 ID가 1인 제품을 삭제:
RESTful하지 않은 시스템
- 모든 작업을 POST 메서드로 처리하거나, URI에 동사를 포함하는 경우 (http://example.com/addProduct).
728x90
'네트워크' 카테고리의 다른 글
[네트워크] OSI 7계층과 TCP/IP 4계층 (0) | 2024.02.01 |
---|---|
[네트워크] DNS (0) | 2023.06.14 |
[네트워크] HTTP (0) | 2023.06.12 |
[네트워크] 쓰레드, 멀티 쓰레드 (0) | 2023.06.11 |
[네트워크] IO 멀티플렉싱 (0) | 2023.06.11 |