REST API

Jixeony·2023년 10월 17일
0
post-thumbnail

REST API란 REST(Representational State Transfer)를 기반으로 만들어진 API를 의미한다. REST API를 알기 위해 REST부터 알아보자!!!

REST란?

웹에서 자원의 상태를 주고 받는 것을 의미
모든 데이터 구조와 처리 방식은 URL을 통해서 정의된다.

  1. HTTP URL(Uniform Resource Identifier)을 통해 자원 명시
  2. HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용

CRUD Operation?

  • Create : 데이터 생성(POST)
  • Read : 데이터 조회(GET)
  • Update : 데이터 수정(PUT)
  • Delete : 데이터 삭제(DELETE)
  • HEAD : 네트워크상 데이터의 header 정보 조회(HEAD)

REST 구성요소

  • 자원(Resource) : HTTP URL
  • 행위(Verb) : HTTP Method
  • 표현(Representatins)
  1. 자원
    모든 자원에 고유한 ID가 존재, 이 자원은 서버에 존재
  2. 행위
    HTTP 프로토콜의 Method를 사용, GET, POST, PUT, DELETE와 같은 메서드 제공
  3. 표현
    클라이언트가 자원의 상태에 대한 조작을 요청하면 서버는 이에 적절한 응답을 보냄

REST 특징

1. Server-Client(서버-클라이언트 구조)
REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트 등을 직접 관리
-> 역할 확실히 구분 = 서버와 클라이언트 간 의존성 줄어듬

2. Stateless(무상대성)
작업을 위한 상태 정보를 따로 저장하고 관리하지 않음
-> API 서버는 들어오는 요청만 단순히 처리하면 됨

3.Cacheable(캐시 처리 가능)
HTTP라는 기존 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존의 인프라를 그대로 사용 가능
-> HTTP가 가진 캐싱 기능 적용이 가능

4. Layered System(계층화)
다층 계층으로 구성이 가능하기 때문에 보안, 로드 밸런싱, 암호화 계층을 추가하여 구조 간의 유연성을 줌
또, 프록시, 게이트웨이와 같은 네트워크 기반의 중간 매체를 사용 가능

5. Uniform Interface(인터페이스 일관성)
HPPT 표준에만 따르면, 안드로이드/iOS 플랫폼이든, 제약 없이 모든 플랫폼에서 사용 가능

REST 장단점

장점

  • HTTP 프로토콜의 인프라를 그대로 사용, REST API 사용을 위한 별도의 인프라 구축 필요X
  • HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능
  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장
  • REST API 메세지가 의도하는 바를 명확히 나타내기 때문에 이해가 쉽다
  • 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화
  • 서버와 클라이언트의 역할을 확실하게 분리

단점

  • 표준 자체가 존재하지 않아 정의가 필요
  • 사용 가능한 메소드가 4개(CRUD Operation)뿐
  • 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header의 정보 값을 처리해야 하므로 전문성 요구
  • 구형 브라우저(익스플로어)에서는 호환이 완벽하게X

REST API란?!

REST의 원리를 따르는 API

API🤔❓

데이터와 기능의 집합을 제공하여 컴퓨터 프로그램 간의 상호작용을 촉진하며, 서로 정보 교환이 가능하도록 하는 것

REST API 특징

  • REST 기반으로 시스템을 분산하여 확장성과 재사용성을 높여 유지보수 및 운영을 편리하게 함
  • HTTP 표준을 기반으로 구현, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있음

REST API 설계 규칙 예시

  1. URL은 동사보다 명사 사용, 대문자 말고 소문자 사용
    http://jixeony.com/run

  2. 마지막에 슬래시(/)를 포함X
    http://jixeony.com/run/

  3. 언더바(_) 대신에 하이픈(-)을 사용
    http://jixeony.com/first-test

  4. 파일 확장자는 URL에 포함X
    http://khj93.com/photo.jpg

  5. 행위 포함X
    http://khj93.com/post/1

  6. 경로 중 변하는 부분은 유일한 값으로 대체
    -> 특정 id가 2인 경우
    http://jixeony.com/test/2

RESTful API란?

REST의 원리를 따르는 시스템을 의미

하지만, REST를 사용했다고 해서 다 RESTful한 것은 아니다. REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 표현할 수 있다.

0개의 댓글

관련 채용 정보