-
RESTful API에 대하여Programming/etc. 2022. 5. 10. 22:43
Rest(Representational State Transfer)는 네트워크 아키텍처 원리의 모음이며 이 제약조건을 준수하는 애플리케이션 프로그래밍 인터페이스(API)를 뜻한다. = 일련의 지침
•6가지 제한 조건
1)인터페이스 일관성: 일관적인 인터페이스로 분리되어야 한다.
2)무상태(Stateless): 각 요청 간 클라이언트의 정보가 서버에 저장되어서는 안된다.
3)캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱 할 수 있어야 한다.
가):잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability(확장성)와 성능을 향상시킨다.
4)계층화(Layerd System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱이나 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성과 유연성을 향상시키는데 유용하다.
5)Code on demand: 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다. (= 별도의 가공 없이 바로 실행 가능한 코드를 전송)
6)클라이언트/서버 구조: 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.
•REST 인터페이스의 원칙에 대한 가이드
1)자원의 식별: 요청 내에 기술된 개별 자원을 식별할 수 있어야 한다. ex)URI의 사용, DB 레코드를 HTML,JSON등 형식으로 전송
2)메시지를 통한 리소스의 조작
3)자기서술적 메시지
4)애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
•REST의 주요한 목표
1)구성 요소 상호작용의 규모 확장성
2)인터페이스의 범용성
3)구성 요소의 독립적인 배포
4)중간적 구성요소를 이용해 응답 지연 감소, 보안을 강화 레거시 시스템을 인캡슐레이션
•RESTful API를 통해 요청이 수행 될때 리소스 상태에 대한 표현을 요청자에게 전송(RESTapi는 데이터가 아닌 자원 상태에 대한 표현을 반환하는 것)
•아키텍처 원칙 세트이며 프로토콜이나 표준이 아니다. 따라서 API 개발자는 다양한 방식으로 구현 할 수 있다.'Programming > etc.' 카테고리의 다른 글
Garbage Collector, Garbage Collection에 대하여 (0) 2022.03.29 Twelve-Factor(트웰브 팩터) 방법론 (0) 2022.03.28 CDN에 관하여 (0) 2022.03.18 CI/CD에 대한 이해 (0) 2022.02.10 CORS(Cross-Origin Resource Sharing)에 대하여 (0) 2022.02.10