Server/Web & Server

REST API 란

Fehoon- 2018. 7. 4. 11:36

REST API 란


REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩(Roy Fielding)의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼졌다.

엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다.


-위키백과 中



하나의 web api는 베포되고 나면 수정이 어렵다. 특히 클라이언트가 있는 상태라면 더더욱 그러하다.(이를 해결하기 위해 버전을 주고 URI를 분리하기도 한다) 그렇기 때문에 디자인을 신중하게 해야하는데 별도의 가이드가 없는 상황에서는 다른 선구자(?)들의 방식들을 참고할 수밖에 없다.


-amazingguni 포스팅 中



Restful한 디자인


1. URI는 간단하고 직관적이어야 한다.


2. URI에 동사보다는 명사를 사용

ex> deleteA (x) updateA(x) => method를 통하여 정의하도록 하자

개인적으로는 클라이언트 입장에서는 인식하기 어려울 것 같음..

CRUD = POST, GET, PUT, DELETE 로 각각 매치


3. 단수보다는 복수 명사를 사용 

ex> /v2/task => /v2/tasks


4. 가급적이면 소문자를 사용하여 혼란을 없애도록 하자!




해당 내용은 아래 주소의 내용을 참고하여 정리하였습니다.

깃허브 블로그에 아주 좋은 포스팅이 있어서 참고하시면 좋겠습니다. 

추천추천

RESTful 에 대한 이해 - 1

http://amazingguni.github.io/blog/2016/03/REST%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-1

RESTful 에 대한 이해 - 2

http://amazingguni.github.io/blog/2016/04/REST%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-2


마지막으로 포프TV의 동영상을 가져와봤습니다.


REST API에 대한 개념이라기보다는 

REST API와 버전에 대해서 생각해보게되는 영상이네요




반응형