STUDY

Rest API

Huwon 2021. 1. 22. 22:19
  • 정의

-REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스

-REST는 Representational State Transfer의 줄임말

-아케텍처 원칙 세트

 

  • API

-Application Programming Interface

-애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트

-컴퓨터나 시스템과 상호 작용하여 정보를 검색하거나 기능을 수행하고자 할 때 API는 사용자가 원하는 것을 시스템에 전달할 수 있게 지원하여 시스템이 이 요청을 이해하고 이행하도록 할 수 있다.

 

  • REST API 기준

    -**클라이언트 서버 아키텍처:** REST 아키텍처가 클라이언트, 서버, 리소스로 구성되며 HTTP를 통해 요청을 처리

    -**스테이트리스:** 요청이 통과하는 서버에는 클라이언트 콘텐츠가 저장되지 않으며 그 대신 세션 상태에 대한 정보가 클라이언트에 저장

    -**캐시 가능성:** 캐싱으로 일부 클라이언트-서버 간의 상호 작용이 제거

    -**계층화된 시스템:** 추가 계층으로 클라이언트-서버 간의 상호 작용을 조정할 수 있으며 이러한 계층은 로드 밸런싱, 공유 캐시 또는 보안과 같은 추가 기능을 제공할 수 있다.

    -**코드 온디맨드(옵션):** 서버가 실행 가능한 코드를 전송하여 클라이언트의 기능을 확대

    -**통합된 인터페이스:** 이 제약 조건은 RESTful API 설계의 핵심

    (1)**요청에서 리소스 식별:** 리소스가 요청에서 식별되며 클라이언트로 반환된 표현으로부터 분리

    (2)**표현을 통한 리소스 조작:** 클라이언트가 리소스를 나타내는 파일을 수신합니다. 이 표현에는 조작 또는 삭제를 허용할 수 있도록 충분한 양의 정보가 포함

    (3)**자기 기술적(Self-descriptive) 메시지:** 클라이언트에 반환되는 각 메시지에 클라이언트가 정보를 어떻게 처리해야 할지 설명하는 정보가 충분히 포함

    (4)**애플리케이션 상태 엔진으로서의 하이퍼미디어:** 리소스를 할당한 후 REST 클라이언트가 하이퍼링 크를 통해 현재 사용 가능한 기타 모든 작업을 찾을 수 있어야 한다.

     

  • 아키텍처란?

    -**최적화를 목표로 두고 시스템 구성과 동작원리 그리고 시스템의 구성환경등을 설명 및 설계하는 청사진 또는 설계도**

     

     https://tuhbm.github.io/2019/04/24/architecture/ 아키텍처에 관한 정의

     https://www.redhat.com/ko/topics/api/what-is-a-rest-api REST API에 관한 내용 참고

     본 TIL은 위의 두 글을 참고하여 정리한 글입니다.

'STUDY' 카테고리의 다른 글

R2DBC  (0) 2021.04.03