RESTful 3

[웹개발] REST API(3)

REST의 안티 패턴 GET / POST를 이용한 터널링 메서드의 실제 동작은 리소스를 업데이트하는 내용인데, HTTP PUT을 사용하지 않고 GET에 쿼리 파라미터로 method=update와 같이 넘겨서 이 메서드가 수정 메서드임을 명시하는 경우 또는 Create가 아닌데도 JSON body에 오퍼레이션을 넘기는 형태 HTTP 메서드 사상을 따르지 않았기 때문에 REST라고 부를 수도 없고, 웹 캐시 인프라 등도 사용이 불가능하다. 자기 서술성(Self-descriptiveness) 속성을 사용하지 않는 경우 REST는 쉽게 정의된 메시지 포맷에 의해서 API를 쉽게 이해할 수 있어야 한다. 위에서 언급한 GET이나 POST를 이용한 터널링은 대표적으로 자기 서술성을 사용하지 않는 경우이다. HTTP..

웹개발 2022.03.05

[웹개발] REST API(2)

REST API의 규칙 REST에서 가장 중요하며 기본적인 규칙은 다음과 같다. URI는 정보의 자원을 표현해야 한다. 자원에 대한 행위는 HTTP 메서드(GET, POST, PUT, DELETE 등)로 표현한다. 이어서 REST API URI 규칙을 살펴보자. 소문자를 사용한다. 대문자는 문제를 일으키는 경우가 있기 때문에 소문자를 사용한다. RFC3986은 체계 및 호스트 구성 요소를 제외하고 URI는 대소문자를 구분하여 정의한다. 언더바(_) 대신 하이픈(-)을 사용한다. 가독성을 위해 긴 Path를 표현하는 단어는 하이픈으로 구분한다. 폰트에 따라서 언더바 문자는 안 보일 수 있다. URI 마지막에는 슬래시를 포함하지 않는다. 마지막 슬래시는 전혀 의미가 없다. URI에 포함되는 모든 글자는 리소..

웹개발 2022.03.05

[웹개발] REST API(1)

REST(REpresentational State Transfer) REST는 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 개념은 네트워킹 문화에 널리 퍼져있다. 엄격한 의미의 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 네트워크 아키텍처 원리란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트래킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다. REST라는 용어는 로이 필딩의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 필딩의 REST 원리를 따라는 시스템은 종종 ..

웹개발 2022.03.03