3w_ Rest? Rest API?

YoonJu Lee·2021년 7월 21일
0
post-thumbnail

1. REST

  • REST API, RESTful api 라고 많이들 들어보셨나요? 여기서 REST란 무슨 의미일까요?
  • 인터넷에 찾아보면 "REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다." 라고 설명이 되어 있습니다.
  • 또 찾아보면 REST란, “웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용”하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다고 합니다.

  • 설명만 보면 이해하기 어려운데요. 예를 들어보겠습니다. 저희가 일반적으로 한 사이트에 접속해 있을 때 이 사이트의 하위 페이지들은 어떻게 구성되어있는지 쉽게 알기 어렵습니다. 뉴스페이지로 들어갔을 때, 웹툰 페이지로 들어갔을 때 url 이 어떻게 바뀔지 잘 알기 어렵죠? 그리고 사이트나 서비스별로 다 규칙이 다를 수도 있습니다.


  • 그래서 이런 웹에 존재하는 자원들에 대한 접근하는 방법 등을 정의한 것을 REST라고 합니다.
  • REST API는 그러니까 REST라는 규칙을 따르는 API라고 생각하시면 됩니다

2. REST API의 구성

REST API의 구성은 크게 세 가지로 이루어 집니다

1. 자원(Resource) - URL

  • 우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리해야겠죠.
  1. 행위 - HTTP method

    • 이전에 배웠던 HTTP method 기억나시나요? GET, POST 등등이 있다고 했었는데요. 이것으로 해당 자원에 대한 행위를 표현할 수 있습니다. 예를 들어 GET 메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 이런 식으로요.

    • 이렇게 나누어진 것을 보통 CRUD 라고 합니다. 자원에 대한 생성/조회/수정/삭제를 각각의 method 로 나누어놓은 것이지요.

      Create : 생성(POST)
      Read : 조회(GET)
      Update : 수정(PUT)
      Delete : 삭제(DELETE)
    • 위 이미지의 예시처럼 쓰이는 것이 일반적인 method 사용방식입니다. 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않습니다. 상황에 따라 저것을 완벽하게 지키기 어려운 부분들도 있으니 이 부분 참고 해주세요.

  2. 표현

    • 해당 자원을 어떻게 표현할지에 대한 설명입니다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.
profile
Coder가 아닌 Engineer를 향해서.

0개의 댓글