본문 바로가기

network

REST API

REST의 구성

  • 자원(resource) - URI
  • 행위(Verb) - HTTP METHOD
  • 표현(Representations)

REST API

  • REST 기반으로 서비스 API를 구현한 것
  • 대표적으로 상태 전달이고 아래 설명이 자세한 내용
  • REST API는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식
    • 리소스 (HTTP URI로 정의됨)를 어떻게 하겠다(HTTP Method + payload)를 구조적으로 깔끔하게 표현하는 방법입니다.

특징

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

REST API 설계 가이드

  • 리소스에 대한 행위는 HTTP Method(POST, GET, PUT, DELETE)로 표현해야 한다.
  • /(슬래시)는 계층관계를 나타낼때 사용한다.
  • URI 마지막 문자에 /(슬래시)를 사용하지 않는다.
  • URI에 _(underscore)는 사용하지 않도록 한다. 또한 영어 대문자보다는 소문자를 쓴다. 그리고 가독성을 위해 긴 단어는 잘 사용하지 않는다.
  • URI에 동사는 GET, POST와 같은 HTTP Method를 표현하기 때문이다. 동사가 아니라 명사를 사용한다.
  • URI에 파일 확장자(.json, .jpge)를 포함 시키지 않는다.

RESTful

  • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
    • REST API를제공하는 웹 서비스를 RESTful하다고 할 수 있다.
  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
    • 즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.

RESTful의 목적

  • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
  • RESTful한 API를 구현하는근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.

'network' 카테고리의 다른 글

쿠키와 세션에 대해서  (0) 2021.08.25
API란?  (0) 2021.06.14
HTTP란?  (0) 2021.06.14