REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한
소프트웨어 아키텍처의 한 형식이다.
웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용하는 것으로,
자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다
예를 들어)
일반적으로 한 사이트에 접속해 있을 때 이 사이트의 하위 페이지들은 어떻게 구성되어있는지 쉽게 알기 어렵습니다. 뉴스페이지로 들어갔을 때, 웹툰 페이지로 들어갔을 때 url 이 어떻게 바뀔지 잘 알기 어렵죠? 그리고 사이트나 서비스별로 다 규칙이 다를 수도 있습니다.
--> 그래서 이런 웹에 존재하는 자원들에 대한 접근하는 방법 등을 정의한 것을 REST라고 합니다.
--> REST API는 그러니까 REST라는 규칙을 따르는 API라고 생각하시면 됩니다
우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다.
--> 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리해야겠죠.
--> GET, POST등의 HTTP method들이 행위에 해당합니다.
예를 들어)
GET 메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 등등
--> 이렇게 나누어진 것을 보통 CRUD 라고 함
CRUD
--> 자원에 대한 생성/조회/수정/삭제를 각각의 method 로 나누어놓은 것
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)
위 이미지의 예시처럼 쓰이는 것이 일반적인 method 사용방식입니다.
--> 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않습니다.
상황에 따라 저것을 완벽하게 지키기 어려운 부분들도 있으니 이 부분 참고 해주세요.
해당 자원을 어떻게 표현할지에 대한 설명
--> 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.