REST API

황준승·2022년 1월 14일
0
post-thumbnail

목차

  1. REST란?
  2. REST API
  3. RESTful
  4. RESTAPI 실습 (JSON server)

출처

모던 자바스크립트 44장
REST와 RESTful의 개념
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

1. REST란?

정의

  1. REST(Respresentational State Transfer)의 약자로 자원을 이름(표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다.

a. 자원의 이름(표현)

  • ex) DB의 학생 정보가 자원일 때, 'students'를 자원의 표현으로 정한다.

b. 상태(정보) 전달

  • 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
  • JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
  1. REST는 기본적으로 웹의 기존 기술인 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키택처 스타일이다.

  2. REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

2. REST API란?

API

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

REST API

즉, REST 기반으로 서비스 API를 구현한 것이다.

REST API 구성요소 3가지

구성요소내용표현방법
자원자원URI(엔드포인트)
행위자원에 대한 행위HTTP 요청 메서드
표현자원에 대한 행위의 구체적 내용페이로드

REST API 설계 원칙

  1. URI는 리소스(자원)을 표현하는 데 집중
  2. 행위에 대한 정의는 HTTP 요청 메서드를 통해 하기

예제)

# bad
GET /getTodos/1
GET /todos/delete/1  

# good
GET /todos/1
DELETE /todos/1

리소스를 식별할 수 있는 이름은 동사가 아닌 명사로 해야하며 리소스를 삭제하는 경우 DELETE등을 사용하여 리소스에 대한 행위를 명확히 표현해야 한다.

그 외 더 상세한 REST API 설계 원칙

  1. URI는 정보의 자원을 표현해야 한다.
  • resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
  • resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다.
  • resource의 컬렉션 이름으로는 복수 명사를 사용해야 한다.
  • resource의 스토어 이름으로는 복수 명사를 사용해야 한다.
  1. 슬래시 구분자(/ )는 계층 관계를 나타내는데 사용한다.

  2. URI 마지막 문자로 슬래시(/ )를 포함하지 않는다.
    URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URI도 달라져야 한다.

  3. REST API는 분명한 URI를 만들어 통신을 해야 하기 때문에 혼동을 주지 않도록 URI 경로의 마지막에는 슬래시(/)를 사용하지 않는다.

  4. 하이픈(-) O, 밑줄(_) X

  5. 소문자 O, 대문자 X

  6. 파일확장자는 URI에 포함 X => Accept header를 사용한다.

ex) http://restapi.example.com/members/soccer/345/photo.jpg (X)
ex) GET / members/soccer/345/photo HTTP/1.1 Host: restapi.example.com Accept: image/jpg (O)

profile
다른 사람들이 이해하기 쉽게 기록하고 공유하자!!

0개의 댓글