[Programming] REST API 대한 간단한 고찰

엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 ‘네트워크 아키텍처 원리’란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다.

출처 : https://ko.wikipedia.org/wiki/REST

위키백과에 나와있는 REST에 대한 정의이다. 내가 이해한 REST는 서버에 존재하는 자원에 접근하기 위한 URI 설계 원칙이자 방법이다. 이 REST 원리를 따르는 시스템을 RESTful 하다고 칭한다.

SOAP 방식은 HTTP/XML 을 주로 사용하는데, REST 는 HTTP/Json 을 사용한다.

파라미터 남발

리소스에 접근하기 위한 URI를 디자인 할 때 파라미터를 무분별하게 남발해서는 안된다. 예를 들어 서버에 있는 l0gic 이라는 유저 데이터에 접근하기 위한 URI 는

http://localhost/getUser.php?id=l0gic

이렇게 디자인 하지 않고,

http://localhost/user/l0gic

이런식으로 오브젝트의 멤버변수를 따라가듯이 디자인을 해야한다. 파라미터의 사용은 데이터의 필터링을 위해 사용한다.

 

메서드 사용

또한 HTTP 에서는 흔히 알려져 있는 GET 혹은 POST 이외로 2개의 메소드를 제공한다. PUT 과 DELETE 인데, 무조건 POST 로만 요청을 하는 서비스는 RESTful 한 서비스가 아니라고 알고 있다.

자원의 생성은 POST, 자원의 조회는 GET, 자원의 수정은 PUT, 자원의 삭제는 DELETE 라는 메서드를 사용한다. 모든 요청을 POST 메서드로만 처리하는 것은 올바르지 않은 REST URI 디자인이다.

 

메타데이터

URI에 접근하여, 접근에 대한 응답 상태를 Body (HTML 부분) 처리의 결과 (성공여부 등)은 HTTP Status 로 표현한다.  오직 접근한 리소스만이 Body 에 표현되어야 한다.

http://localhost/user/l0gic

에 접근했을 경우 사용자가 존재하지 않으면, HTTP Status 는 404 (not found) 가 된다.

 

You may also like...