REST API 공부

전상욱·2020년 1월 10일
0

REST(Representational State Transfer)는 HTTP/1.0과 1.1의 스펙 작성에 참여하였고 아파치 HTTP 서버 프로젝트의 공동설립자인 로이 필딩 (Roy Fielding)의 2000년 논문에서 처음 소개되었다. 발표 당시의 웹이 HTTP의 설계 상 우수성을 제대로 사용하지 못하고 있는 상황을 보고 웹의 장점을 최대한 활용할 수 있는 아키텍쳐로서 REST를 소개하였고 이는 HTTP 프로토콜을 의도에 맞게 디자인하도록 유도하고 있다. REST의 기본 원칙을 성실히 지킨 서비스 디자인을 “RESTful”이라고 표현한다.

즉, 자원의 대표에 의한 상태전달! 좁은 의미로 HTTP를 통해 CRUD를 실행하는 API

  • 자원의 대표: 넓은 의미로 해당 소프트웨어가 관리하는 모든 것이 될 수 있다. (문서, 그림, 데이터 ...)
  • 상태 전달: 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달 하는 것을 뜻합니다. 데이터를 요청하는 시점에 따라 데이터가 바뀔 수도 있다.

1. REST API 중심 규칙

REST에서 가장 중요한 기본적인 규칙은 두 가지이다. URI는 자원을 표현하는 데에 집중하고 행위에 대한 정의는 HTTP Method를 통해 하는 것이 REST한 API를 설계하는 중심 규칙이다.

  • URL는 정보의 자원을 표현해야 한다.
#bad case
GET / getTodos/1
GET / todos/show/1

# good case
GET /todos/1
  • 자원에 대한 행위는 HTTP Method (GET, POST, PUT, DELETE)으로 표현 한다.

2. HTTP Method

  • GET

    • index / retrieve
    • 모든(특정) 리소스를 조회
    • 페이로드 X
      • (참고)페이로드: 사용에 있어서 전송되는 데이터를 뜻한다. 페이로드는 전송의 근본적인 목적이 되는 데이터의 일부분으로 그 데이터와 함께 전송되는 헤더와 메타데이터와 같은 데이터는 제외한다.용된다. 이 용어는 운송업에서 비롯하였는데, 지급(pay)해야 하는 적화물(load)을 의미한다. 예를 들어, 유조선 트럭이 20톤의 기름을 운반한다면 트럭의 총 무게는 차체, 운전자 등의 무게 때문에 그것보다 더 될 것이다. 이 모든 무게를 운송하는데 비용이 들지만, 고객은 오직 기름의 무게만을 지급(pay)하게 된다. 그래서 'pay-load'란 말이 나온 것이다.
  • POST

    • create
    • 리소스를 생성
    • 페이로드 O
  • PUT

    • replace
    • 리소스 전체를 교체
    • 페이로드 O
  • PATCH

    • modify
    • 리소스의 일부를 수정
    • 페이로드 O
  • DELETE

    • delete
    • 모든(특정) 리소스를 삭제
    • 페이로드 X

    출처: https://poiemaweb.com/js-rest-api

(목표(?))

  • 프로젝트 하면서 예제도 올려야지 ( swagger )
profile
someone's opinion of you does not have to become your reality

0개의 댓글