REST API 는 과연 무엇일까? 어렴풋이 들으면 맞다맞다 그거였지 라고 하지만 처음부터 설명하기엔 어려운 Rest Api 와 Restful Api 에 대해서 정말 깊이있고 심층적이게 알아보고자 한다!
우선 REST에 대해서 알아보자
위키백과에서는 REST에 대해서,
REST 는 Representational State Transfer 의 약자이며, 월드와이드웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. REST는 네트워크 아키텍처 원리의 모음이며 자원을 정의하고 자원에 대한 주소를 지정하는 방법의 전반을 일컫는다.
즉, REST는 웹의 장점을 최대한적으로 활용할 수 있는 아키텍처로서 REST가 나오게 되었다 라는 것이다.
여기서, 아키텍처란 한마디로 컴퓨터 공학에서의 설계의 개념
, 컴퓨터 시스템의 근간이 되는 운영구조
이다.
REST API를 설계할때,
첫번째, URI는 정보의 자원을 표현해야한다.
두번째, 자원에 대한 행위는 HTTP METHOD로 표현한다.
ex) GET, POST, PUT(PATCH), DELETE
예를 들자면,
위의 uri는 실제로 요리조리 웹사이트를 설계했을때의 uri이다. 이것은 제대로 REST API 설계라고 볼 수 없다.
왜냐하면 delete 라는 자원에 대한 행위가 uri에 담겼기 때문이다. 이것을 REST API 로 바꿔보자면,
이런식으로 바꿀 수 있다.
어떤점이 다른게 짜져있는지 알 것 같다.
다시 한번 요리조리의 URI를 살펴보자면,
이것을 바꿔준다면,
PUT(PATCH) http://localhost:8080/recipe/{recipe_num} O
무언가 감이 잡혀온다.
HTTP METHOD의 알맞은 역할
REST API는 한마디로 요약하자면, URI를 이용하여 정보의 자원을 표현하고 HTTP METHOD를 활용하여 자원에 대한 행위를 표현하는 설계 아키텍처 방법이다.
이런식으로 설계된 API를 REST 하네~ 라고 해서 RESTful API 라고 부른다.
REST API를 알아가면서 요리조리 웹사이트의 URI 문제점에 대해서 알게되었고 반성하게 되었다.
그래도 앞으로는 REST API를 활용해서 프로젝트를 진행해 나아갈테니! 어제의 나는 반성하고 오늘의 나는 알아가고 내일의 나는 발전한다!!
참고자료:
https://meetup.toast.com/posts/92
https://spoqa.github.io/2012/02/27/rest-introduction.html