[JavaScript] REST

seonjeong·2023년 3월 4일
0

JavaScript

목록 보기
8/8
post-thumbnail

REST

  • HTTP를 기본으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처
  • REST의 기본 원칙을 성실히 지킨 서비스 디자인을 RESTful이라고 표현

REST API

  • REST를 기반으로 서비스 API를 구현한 것

🔥 구성

: 자체 표현 구조로 구성되어 REST API만으로 HTTP 요청의 내용을 이해할 수 있다

  • 자원 (resuorce) : URI (통합 자원 식별자, 인터넷에 있는 자원을 나타내는 유일한 주소)
  • 행위 (verb) : HTTP 요청 메서드 (GET, PUT, POST, DELETE등등)
  • 표현 (representations) : 페이로드 (->사용에 있어서 전송되는 데이터)

🔥 특징

1. Server-Client 구조

Server : 자원이 있음
Client : 자원을 요청

2. Stateless(무상태)

Client의 context를 Server에 저장하지 않는다.
Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리힌다.

3. Cacheable(캐시 처리 가능)

웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.

4. Layerd System(계층화)

Client는 REST API Server만 호출한다.
PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있다.

5. Code-On-Demane(optional)

Server로부터 스크립트를 받아서 Client에서 실행한다.

6. Uniform Interface(인터페이스 일관성)


🔥 설계 원칙

1. URI는 리소스를 표현해야 한다

  • 리소스를 식별할 수 있는 이름은 동사보다 명사를 사용
# bad
GET /getTools/1
GET /todos/show/1

# good
GET /todos/1

2. 리소스에 대한 행위는 HTTP 요청 메서드로 표현한다

  • 주로 5가지 요청 메서드(GET, POST, PUT, PATCH, DELETE 등)를 사용하여 crud를 구현
  • 예시 : 리소스를 취득하는 경우 -> GET / 리소스를 삭제하는 경우 -> DELETE



Reference

https://velog.io/@leehyunho2001/REST-RESTAPI-RESTful%EC%9D%98%EB%AF%B8

profile
🦋개발 공부 기록🦋

0개의 댓글