REST의 정의
-
REpresentational State Transfer
의 약자로, 자원의 이름으로 구분하여 정보를 주고 받을수 있는 모든것을 의미 한다. -
REST는 HTTP 프로토콜을 이용하기 때문에 웹의 장점을 최대한 활용이 가능한 아키텍처이다 REST는 네트워크 상에서 Client 와 Server 사이의 통신 방식중 하나이다.
REST의 개념
- 자원에 대해서
CRUD
(Create, Read, Update, Delete)연산을 수행하기 위한 URI(Resource)로 GET, POST 방식을 사용하여 요청을 보낸다.URI 와 URL의 차이점? URL은 Uniform Resource Locator로 인터넷 상의 자원의 위치를 의미한다. URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성이다.
REST의 구성요소
- 자원(Resource) -URI
자원에는 고유한 ID가 존재하고, 이 자원은 Serve에 존재한다. 자원을 구별하는 ID는 '/exgroups/:exgroup_id'와 같은 HTTP URI 이다. Client는 URI를 이용해 자원을 지정하고 해당자원의 상태에 대해 Server에 요청한다.
- 행위(Verb) - Method ```Diff HTTP 프로토콜의 Method를 사용 HTTP 프로토콜은 GET, POST, PUT, PATCH, DELETE의 Method를 제공한다. (CRUD)
GET - Read : 정보 요청 POIST - Create : 정보 입력 PUT - Update : 정보 업데이트 (데이터 전체를 변경) PATCH - Update : 정보 업데이트 (데이터 일부만 변경) DELETE - Delete : 정보 삭제
- 표현 (Representation of Resource)
```Diff
Client의 Server가 데이터를 주고 받는 형태로 JSON, XML, TEXT, RSS 등이 있다.
JSON, XML를 통해 데이터를 주고 받는것이 일반적
REST API란?
- API(Application Programming Interface)란?
API는 응용 프로그램에서 사용할 수 있도록 , 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스 이다.
- REST API의 정의
REST의 특징을 기반으로 서비스 API를 구현
REST API 와 RESTful API의 차이점
- RESTful은 REST의 설계 규칙을 잘 지켜서 설계된 API를 RESTful한 API라고 한다. 즉, REST의 원리를 잘 따르는 시스템을 RESTful이란 용어로 지칭
URL Rules
-
마지막에
/
포함하지 않는다.http://api.test.com/users
-
_(underbar) 대신 -(dash)를 사용한다. (dash)의 사용도 최소한으로 설계한다. 정확한 의미나 표현을 위해 단어의 결합이 불가피한 경우 반드시 -(dash) 사용한다.
http://api.test.com/users/post-commnets
-
소문자를 사용한다.
http://api.test.com/users/post-commnets
-
행위(method)는 URL에 포함하지 않는다.
DELETE http://api.test.com/users/1/posts/1
-
컨트롤 자원을 의미하는 URL 예외적으로 동사를 허용한다. 함수처럼, 컨트롤 리소스를 나타내는 URL은 동작을 포함하는 이름을 짓는다.
http://api.test.com/posts/duplicate