REST API

이서현·2021년 8월 4일
0

WEB

목록 보기
9/17
post-thumbnail

REST API

  • REST(Representation State Transfer)는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식이다.
    - 네트워크 아키텍쳐 원리의 모음이다.

    • 네트웨크 아키텍쳐는 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 의미한다.
  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
    - 자원 : 해당 소프트웨어가 관리하는 모든 것이다. 문서, 그림, ...
    - 지원의 표현 : 그 자원을 표현하는 이름

    • 상태 전달 : 데이터가 요청되어지는 시점에 자원의 상태를 전달한다. JSON, XML을 통해 자원을 전달한다.
  • API 는 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며 서로 정보를 교환할 수 있는 것이다.

REST 특징

  • Uniform Interface
    URL 로 지정된 리소스에 대한 조작을 통일하고 한정적인 인터페이스로 수행하는 아키택쳐 스타일이다.

  • Client-Server
    서버는 API를 제공하고 클라이언트는 로그인 등 직접 관리하는 구조다. 역할이 구분되기 때문에 개발할 내용이 명확하고 의존성이 줄어든다.

  • Stateless
    작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다. API 서버는 들어오는 요청만 단순히 처리한다. 서비스의 자유도가 높아지고 서버에 불필요한 정보를 관리하지 않는다.

  • Cacheable
    HTTP가 가진 캐싱 기능이 적용 가능하다. HTTP 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용 가능하다.

  • Layered System
    다중 계층으로 구성될 수 있다. 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있다.

  • Self-descriptiveness
    REST API 메세지만 봐도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.

  • Code-On-Demand
    서버로부터 스크립트를 받아서 클라이언트에 실행된다.

    REST 요소

  • resource : URL

  • Method : HTTP METHOD

  • representation

    REST 디자인 패턴

  1. URL은 정보의 자원을 표현
  2. 자원에 대한 행위는 HTTP Method로 표현한다.
    GET /members/1
    
  • CRUD Operation
    - Create : POST (생성)
    • Read : GET (조회)
    • Update : PUT (수정)
    • Delete : DELETE (삭제)
    • HEAD : HEAD (header 정보 조회)

REST API 응답 상태

  • 1xx : 전송 프로토콜 수준의 정보 교환
  • 2xx : 클라이언트 요청이 성공적으로 수행됨
  • 3xx : 클라잉언트는 요청을 완료하기 위해 추가적인 행동을 취해야 함
  • 4xx : client error
  • 5xx : server error

RESTful

RESTful 이란

  • RESTful은 REST라는 아키택쳐를 구현하는 웹서비스를 나타내기 위해 사용되는 용어이다.
  • REST의 원리를 따르는 시스템은 RESTful이라는 용어로 지칭된다.

RESTful 목적

  • 이해하기 쉽고 사용하기 쉬운 RESTAPI를 만들기 위함이다.
  • RESTful한 API가 성능향상의 목적을 가진 것이 아닌 이해도와 호환성을 높이는 것이 목적이다.

참조

[Network] REST란? REST API란? RESTful이란?
REST API 제대로 알고 사용하기
REST API 란 ?

profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글