-
CS : REST APIComputer Science/etc 2021. 4. 11. 13:45728x90
API (Application Programming Interface)
1.
TV를 만든다고 할 때, 전원 켜기, 전원 끄기, 볼륨 올리기, 볼륨 내리기, 채널 변경 등의 기능을 제공해야 하고, 이러한 기능을 편하게 다루기 위해 '리모컨'이라는 것을 제공한다.
이 때, '리모컨'은 TV라는 기계와 사람 간 의사소통을 위한 Interface라고 할 수 있다.
2.
기계와 사람, 기계와 기계, 소프트웨어와 소프트웨어 사이에서도 수많은 정보의 요청과 응답이 이뤄진다.
3.
기상청 서버가 있고, 기상 정보를 활용하는 application을 만든다고 할 때, application에서 "00월 00일 xx지역의 온도를 알려줘"라고 기상청 서버에 요청을 하면, 기상청 서버는 이에 맞는 정보를 제공해줄 것이고, 이 두 소프트웨어는 '특정' 형식을 통해 의사소통을 할 것이다.
4.
이와 같이, 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 API라고 한다.
REST API (REpresentational State Transfer API)
1.
데이터(자원)를 주고 받는데에 사용되는 '형식'이다.
2.
REST라는 '형식'의 가장 큰 장점은, 형식 자체로도 어떠한 요청 또는 응답을 하는지 추론이 가능하다는 것이다.
3.
서버에 REST API로 요청을 보낼 때는 HTTP(HyperText Transfer Protocol) 규약에 따라 신호를 전송한다.
이러한 특징 때문에, REST 형식은 웹의 장점을 최대한 활용할 수 있는 아키텍처라고 할 수 있다.
4.
REST API에서는 HTTP 규약의 여러 method 중, GET, POST, PUT, DELETE를 사용하여 CRUD를 적용한다.
5.
단점으로는 표준이 없고, 사용 가능한 method가 4개 뿐이라는 점이다.
6.
RESTful API : REST API를 제공하는 웹 서비스를 RESTful하다고 할 수 있다.
7.
다음과 같은 RESTful API 형식이 있을 때,
curl -XGET "http://localhost:9200/index_name/type/document_id -d "{json_format_data}" 'GET'은 HTTP의 method 중 하나이다.
'/'는 자원을 구분하는 구분자이고, 이를 URI라고 한다.
일반적으로 'JSON' 형식으로 데이터를 주고 받는다.
REST의 특징
1.
Server-Client 구조이기 때문에, 서로 간의 의존성이 줄어든다.
2.
Stateless, 즉 무상태성을 가진다.
client측의 context를 server에 별도로 저장하지 않고, server는 여러 개의 요청을 별개의 것으로 인식하고 처리한다.
때문에, Server의 처리 방식에 일관성을 부여하고, 부담이 줄고, 서비스의 자유도가 높아진다.
3.
HTTP 규약을 따르므로, 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
4.
Layered System
5.
Code-On-Demand
6.
Uniform Interface
728x90'Computer Science > etc' 카테고리의 다른 글
CS : 웹호스팅/서버호스팅/클라우드/베어메탈 (0) 2021.04.12 CS : 정규표현식 (0) 2021.04.11 CS : COCO Dataset (0) 2021.04.09 Unix Programming : 명령어 만들기 : 3/3 (0) 2020.06.15 Unix Programming : 명령어 만들기 : 2/3 (0) 2020.06.15