1. API
소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 Application Programming Interface라고 한다.
2. REST API
REST API의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론 가능하다는 것이다. 이렇게 인터넷과 웹을 통해서 나의 컴퓨터를 제어할 때 어떻게 하면 시행착오를 줄이고 더 좋은 API를 만들 수 있는가에 대한 고민의 결과물이 REST API이다.
REST API는 특정 기술이 아니다. HTTP를 이용해서 기계들이 통신을 할 때 HTTP가 가진 잠재력을 최대한 이용할 수 있도록 유도하기 위한 형식이다.
2-1. REST 구성
하나하나의 데이터를 REST API에서는 Resource, Resource는 URI를 통해서 표현된다.
여러 개 topic을 식별하고 싶다면 http://example.com/topics 와 같은 URI를 사용하면 된다. 이러한 것을 Collection이라고 한다.
http://exampe.com/topics/1 와 같이 한 건, 한 건의 데이터는 Element라고 한다. 다시 말해, Collection은 Element가 모여있는 것이다. 보통 id 값을 엘리먼트에서 사용하는 것이 일반적이지만, 이름으로 만약에 식별할 수 있다면 단수형으로 사용한다.
ex) http://exampe.com/topics/rest
2-2. REST API 디자인 가이드
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
URI는 정보를 식별하는 이름일 뿐이다. 우리는 정보를 가공할 수 있어야 한다.
정보에 대한 가공 방법은 4가지가 있다. 그것을 CRUD라고 부른다.
CRUD(create, read, update, delete)를 REST API에서는 Method라고 부른다.
REST API는 HTTP들의 메소드들을 본래 용도에 맞게 쓰자는 것도 중요한 목표로 한다.
- CREATE - POST
- READ - GET
- UPDATE - PUT | PATCH (PUT은 정보를 통째로 갈아끼울 때, PATCH는 정보 중 일부를 특정 방식으로 변경할 때 사용)
- DELETE - DELETE
결론
기계와 기계가 HTTP를 이용해서 통신할 때 리소스는 URI, 행위는 메소드, 결과는 응답 코드로 HTTP가 원래 가지고 있는 의미를 잘 활용하자는 것이다.
Reference
'Study > Network' 카테고리의 다른 글
[Network] 고정/유동/공인/사설 IP (0) | 2017.07.22 |
---|---|
[Network] Cookie / Session(쿠키와 세션) (0) | 2017.07.21 |
[Network] Cache(캐시) (0) | 2017.07.21 |
[Network]Proxy (프록시) (1) | 2017.07.11 |
[Network] HTTP (0) | 2017.07.11 |
댓글