본문 바로가기

study

API란? REST / REST API / RESTful 이란?

반응형

API는 고객의 주문(요청), 요리된 음식(응답)을 연결해주는 웨이터 역할 

 

 

  API란?  

[Application Programming Interface]

응용 프로그램 프로그래밍 인터페이스

In a way, developers “plug in” to APIs to access certain assets for end users – some of them are even  free to use . 

 

 

- 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 중간 매개체 역할 

- 애플리케이션들이 서로 소통할 때 쓰는게 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}

 


 

인터페이스란? 

출처 : nulticore-it.com

 

- 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면. 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템 

- 사용자와 시스템이 상호작용 할 수 있도록 입력/출력을 제공하는 창구 역할 

ex) 웹 프로그래밍 관점에서는 브라우저를 사용할 때 웹사이트 화면이 인터페이스에 해당 

 

 

https://multicore-it.com/56

 

인터페이스 설계

□ 인터페이스 설계 ○ 인터페이스 설계란? 인터페이스 개념 인터페이스는 사용자와 시스템이 상호작용 할 수 있도록 입력과 출력을 제공하는 창구 역할을 한다. 웹 프로그래밍 관점에서 인터

multicore-it.com

 

 


 

 

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

https://www.g2.com/articles/api

반응형