REST 아키텍쳐의 제약 조건을 준수하는
Q: 어떻게 인터넷에서 정보를 공유할 것인가?
A: 정보들을 hypertext로 연결한다.
표현 형식: HTML
식별자: URI
전송 방법: HTTP
HTTP/ 1.0 (1994-1996)
Roy T. Fielding: "How do I improve HTTP without breaking the Web?"
해결책: HTTP Object Model → REST
REST를 만들게 된 계기가 위 질문에서 나온다.
Roy T. Fielding, 박사 논문으로 발표
"Architectural Styles and the Design of Network-based Software Architectures"
한편...
XML-RPC
Salesforce API (SOAP)
SOAP
flickr API (SOAP 형태, 그리고 REST 형태)
REST
결국 REST가 SOAP를 이기고 world-wide api에서 승리했다.
사람들이 부르는 REST API와 Roy T. Fielding이 말하는 REST API는 다른가?
REST 아키텍처를 따르는 것
분산 하이퍼미디어 시스템을 위한 아키텍쳐 스타일
제약조건의 집합
메시지는 스스로를 설명해야 한다.
애플리케이션의 상태는 Hyperlink를 이용해 전이되어야 한다.
우리가 사용하고 있는 웹 브라우저는 REST API를 잘 지키고 있다.
웹 브라우저를 업데이트했다고 웹 페이지를 변경할 필요도 없다.
HTTP 명세가 변경되어도 웹은 잘 동작한다.
HTML 명세가 변경되어도 웹은 잘 동작한다.
*구 버전에서는 화면이 부분적으로 깨져보일 수 있지만 정상 작동한다.
우리가 만드는 앱 클라이언트 또한 서버와 REST API로 통신을 해야만 업데이트 지옥에서 빠져나올 수 있다.
정보들이 주고 받아지는 데 있어서 개발자들 사이에서 쓰이는 형식
소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 Application Programming Interface라고 부른다.
로컬 프로그램인 브라우져는 Web APU로부터 자바스크립트로부터 특정 동작을 지시받는다.
각 요청의 어떤 동작이나 정보를 위한 것인지를 그 요청 모습자체로 추론이 가능하다. RESTful 하게 만든 API는 요청을 보내는 주소만으로도 대략 이게 뭘 하는 요청인지 확인이 가능하기 때문에 협업이 가능해진다.
서버에 REST API로 요청을 보낼 때는 HTTP(Hyper Text Transfer Protocol)란 규약에 따라 신호를 전송한다. http로 요청을 보낼 때 여러가지 메서드가 있는데 REST API에서는 GET, POST, DELETE, PUT, 그리고 PATCH와 같은 메서드를 사용한다.
GET, DELETE는 우체국의 편지와 같다.
POST, PUT, PATCH는 우체국의 소포와 같다.
여기 에서 자세한 내용을 확인하실 수 있습니다!
[참고자료]