[Web] REST API

API (Application Programming Interface)

  • 응용 프로그램(어플리케이션)에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
  • 주로 파일 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
  • 웹은 기본적으로 요청(Request)과 응답(Response)로 동작한다.
  • 웹 API는 웹 어플리케이션을 개발할 때 클라이언트와 서버, 어플리케이션과 어플리케이션 등 서로 요청과 응답을 주고 받기 위해 정의한 API이다.
  • 예를 들어, 블로그에 글을 쓰고 싶을 때 글 쓰기, 출간하기, 저장하기 등과 같은 버튼을 클릭하면 웹 API를 통해 서버에 글이 저장된다. 구글 지도 API를 사용하면, 구글 지도 웹 사이트에 접속하지 않아도 구글 지도를 사용할 수 있는 것도 같은 이치이다.

웹 API의 역할

  • 서버와 데이터베이스 리소스에 접근할 수 있게 해준다. 누구나 접근할 수 있는 경우 문제가 생기기 때문에, 접근 권한이 인가된 사람에게만 접근을 허용한다.
  • 모든 요청과 응답을 표준화 한다. 갤럭시든 아이폰이든 동일한 API를 통해 요청하고 응답을 받는다.

REST API

웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식

REST

  • Representational State Transfer
  • http method (GET, POST, PUT, DELETE)를 사용해서 API 가독성을 높인 구조화된 시스템 아키텍처
  • 하나의 URL로 최소 4가지의 http mehod를 전송할 수 있음
  • 쉽게 말해서, REST API는 리소스(URI로 정의됨)를 어떻게 하겠다(HTTP Methods + Payload)를 구조적으로 깔끔하게 포현하는 방법이다.

REST API 설계 가이드

  • 리소스에 대한 행위는 HTTP Method(POST, GET, PUT, DELETE)로 표현
  • /(슬래시)는 계층 관계를 나타낼 때 사용
  • URI 마지막 문자에 /(슬래시)를 사용하지 않음
  • URI에 …
    • _(underscore)를 사용하지 않음
    • 소문자를 사용
    • 동사 대신 명사를 사용. 동사 역할은 HTTP Method
    • 파일의 확장자(json, jpeg)를 사용하지 않음

RESTful API

  • REST API 설계 가이드에 따라 API를 만드는 것
  • REST API 설계 가이드에 따라 API를 만들어서 웹 서비스를 제공하면 해당 웹 서비스는 RESTful 하다라고 한다.

RESTful하면 뭐가 좋지?

  • self-descriptiveness 즉, 그 자체만으로도 API의 목적이 쉽게 이해된다.(HTTP Method + URI)
  • 백엔드와 프론트엔드의 완전한 분리가 가능함
  • 정보 송수신이 자유로워져서 생산성이 급격히 상승함

© 2021. All rights reserved.

Powered by Hydejack v9.1.4