RESTful API (1)

Just Do It·2022년 1월 18일
0

CS 면접 준비

목록 보기
2/4

JaeYeopHan님 깃허브 참고
홍찬기님 블로그 참고


1. RESTful API 개념?

1.1 REST란

Restful API를 설명하기 앞서 REST가 무엇인지 알아보자.
REST(REpresentational State Transfer의 약자)란 네트워크에서 통신을 구성할 때 '이렇게 정한 구조로 설계하세요'라는 지침이다.


1.2 RESTful

여기에 ful 이라는 어미를 붙여 REST 기본 원칙을 성실히 지킨 서비스 디자인을 'RESTful' 하다 라고 표현된다.


1.3 API(Application Programming Interface

API 는 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다-위키백과
특정 앱에서 구글의 지도를 사용하여 만들고 싶을 때 사용하는 구글 API가 예시가 되겠다.


1.4 RESTful API

즉 RESTful API란 REST를 성실히 만족하는 API이다.


2. REST 구성요소

REST 의 구성요소는 자원(Resource), 행위(Verb), 표현(Respresentation) 3가지로 구성된다.

1. 자원(=URI)

모든 자원(이미자, 동영상, 문서 등) 은 고유한 ID를 가지고 있는 서버에 존재하고 클라이언트는 각 자원의 상태를 조작하기 위해 요청을 보낸다. /video/1 이런식.


2. 행위(=메소드)

클라이언트는 URI 를 이용해 자원을 지정하고 자원을 조작하기 위해 Method를 사용한다. HTTP 프로토콜에서는 GET,POST,PUT,Delete 4가지 메소드를 사용한다.


3. 표현

클라이언트가 서버로 요청을 보냈을 때 서버가 응답으로 보내주는 자원의 상태를 표현이라고 한다. REST 에서 자원은 JSON, XML, TEXT,RSS 등 여러 형태의 표현으로 나타낼 수 있다

3. RESTful한 API의 구체적인 방법

1. 자원과 행위를 명시적이고 직관적으로 분리한다

  • 자원은 URI 로 표현되는데 명사로 표현되어야 한다. ex) /video
  • 행위는 HTTP Method로 표현하고, GET(조회), POST(생성), PUT(수정), DELETE(삭제) 를 목적에 맞게 사용한다.

2. Message는 Header 와 Body를 명확하게 분리해서 사용한다

  • Entity에 대한 내용은 body에 담는다.
  • 애플리케이션 서버가 행동할 판단의 근거가 되는 컨트롤 정보인 API 버전 정보, 응답받고자 하는 MIME 타입 등은 header 에 담는다.(아직 모르는 내용..)
  • header 와 body 는 http header 와 http body로 나눌 수도 있고, http body에 들어가는 json 구조로 분리할 수도 있다.

3. API 버전을 관리한다(아직 모르는 내용)

  • API를 변경할 때는 반드시 하위호환성을 보장하자

4. 서버와 클라이언트가 같은 표현을 사용해서 요청하도록 한다.

  • 브라우저는 form-data 형식의 submit으로 보내고 서버에서는 json 형태로 보내는 식의 분리보다는 둘다 json으로 보내든, 둘 다 form-data 형식으로 보내든 하나로 통일한다(이런걸 'URI가 플랫폼 중립적이다' 라고 한다).

REST API(2) 에서 다룰 내용

REST 6가지 원칙

profile
조급해 하지 말고 한 계단 한 계단 오르기

0개의 댓글