API란?
[Application Programming Interface]
응용 프로그램 프로그래밍 인터페이스
- 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 중간 매개체 역할
- 애플리케이션들이 서로 소통할 때 쓰는게 GET, POST, PUT, DELETE .
- API가 탑재된 application은 더욱 동적이며 실시간 data 를 가져올 수 있다.
- API는 app 개발 과정을 빠르게하고 비용도 절감해준다.
- server는 사용자에게 Json방식 (문자열) 으로 응답한다.
- 다른 서비스로부터 가져온 API를 쓰다가 본인의 API를 구축할 수도 있다.
ex) 초창기 google Maps API에 의존하던 Uber 는 이제 Uber자체적으로 제작한 global mapping project를 쓰고 있다.
- 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
API Endpoints ?
API endpoints는 API가 요청을 보내는 곳, 요청 또는 resource가 있는 곳이다. API endpoints 는 정보가 저장되어 있는 서버쪽에 존재한다. Client가 이 정보 or resource에 접근하기 위해 그들은 정확한 URL을 제공해야한다.
GET https://api.yelp.com/v3/businesses/{id}
method: GET 이고 endpoints 는 아래를 나타낸다.
/v3/businesses/{id}
인터페이스란?
- 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면. 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템
- 사용자와 시스템이 상호작용 할 수 있도록 입력/출력을 제공하는 창구 역할
ex) 웹 프로그래밍 관점에서는 브라우저를 사용할 때 웹사이트 화면이 인터페이스에 해당
REST란?
[ Representational State Transfer ]
- www와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
- 네트워크 상 client와 server사이의 통신 방식 중 하나
- REST는 웹의 기존 기술과 http protocol 을 그대로 활용 -> 웹의 장점을 최대한 활용 가능
- REST의 구체적 개념
=> HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고, HTTP Method (post,get,put,delete)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
REST API 란?
- REST를 기반으로 서비스API를 구현한 것
- 최근 OpenAPI, 마이크로 서비스 (하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐) 등을 제공하는 업체 대부분 REST API 제공
특징 :
- 사내 시스템들도 REST 기반으로 시스템을 분산하여 확장성, 재사용성을 높여 유지보수 및 운용 편리
- http표준 기반인 REST - http 지원하는 프로그램 언어로 client, server 구현 가능
- REST API 제작하면 델파이 클라이언트 뿐 아니라 자바, C#, 웹 등을 이용해 클라이언트를 제작 할 수 있음
RESTful 이란?
- REST 라는 아키텍처를 구현하는 웹서비스를 'RESTful'하다고 표현
ex) REST API를 제공하는 웹 서비스는 RESTful 하다.
- RESTful은 공식적으로 발표된 무언가가 아닌 REST를 REST답게 쓰기위한 방법으로 REST를 잘 따른 시스템을 RESTful하다고 표현
- RESTful 목적: 이해하기 쉽고 사용하기 쉬운 REST API 만들기 / 성능이 중요한 상황에서는 굳이 RESTful할 필요 X
* RESTful 하지 못한 경우
ex) CRUD 기능을 모두 POST로 처리하는 API
ex) route에 resource, id 외의 정보가 들어가는 경우 (/students/updateName)
References :
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
https://medium.com/@stevenzhu03/demystifying-apis-a82294eeb618
'study' 카테고리의 다른 글
[ Google API 최신 ] http://localhost로 구글 로그인 로그아웃 API 사용하기 JavaScript node.js (0) | 2021.06.16 |
---|---|
[http 프로토콜 vs 웹소켓 프로토콜] Websocket, 웹소켓이란? (0) | 2021.05.31 |
WEB / HyperText / HTTP-get,post / HTML / CSS vs SSS 정리 (1) | 2021.05.25 |
JavaScritp : proto, prototype 프로토, 프로토타입이란? (0) | 2021.04.29 |
Router, 라우터란? API란? AJAX란? 비동기란? 특징과 장점들 (0) | 2021.04.26 |