[TIL]Restful API

여주링·2020년 12월 28일
0

TIL

목록 보기
1/13
post-custom-banner

API란🤔?

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

블로그 API를 이용하면 블로그에 접속하지 않고도 다른 방법으로 글을 올릴 수 있다. 그 외에 우체국의 우편번호 API, 구글과 네이버의 지도 API등 유용한 API들이 많으므로, 요즘은 홈페이지 구축이나 추가개편 시 따로 추가로 개발하지 않고 이런 오픈 API를 가져와 사용하는 추세라고한다.

대표적으로 네이버에서도 API를 제공하고 있다
네이버에서 제공하는 API사이트

조금 이해하기가 난해했는데 아래의 이미지를 보고 조금 이해가 되었다
출처:API란? 비개발자가 알기 쉽게 설명해드립니다!

왜 API를 대기업에서 많이 사용하는걸까?

애플에서 간편로그인기능을 제공한다고 가정하자. 간단하게 애플 아이디 하나로 여러사이트를 이용한다는 장점과 동시에 탈퇴를 잘 하지 않게된다.(왜냐? 애플을 탈퇴하는 순간 불편해지니까!) 즉 플랫폼 이탈율을 현저히 줄일 수 있다. 사용자확보를 위한 수단으로써 API가 이용되고 있는것

API이용의 장점

  1. API는 서버와 데이터베이스에 대한 출입구 역할을 한 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여 할 수 있다.

  2. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다.

  3. API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.

API의 종류

API는 사용하는 방법과, 용도에 따라 오픈 API와, 비공개 API 정보로 나눠진다
1. private API
private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행된는 API이다(제 3자에게 노출되지 않음)

2. public API
public API는 개방형 API로, 모두에게 공개된다. 누구나 제한 없이 API를 사용할 수 있는 게 특징

3. partner API
기업이 데이터 공유에 동의하는 특정인들만 사용할 있다. 비즈니스 관계에서 사용되며, 파트너 회사 간에 소프트웨어를 통합하기 위해 사용됨. Uber는 3rd Party 개발자들이 바로 주문을 내릴 수 있도록 API 를 개방했는데, 이것이 새로운 수익 흐름을 만들어 주었다고한다

어떤 특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청해야 하는지, 그리고 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들을 API라고 하는것입니다! API라고 하는것이죠!

graphQL API(앤드포인터는 하나)->백엔드가 정해둔것만 오는게 아니고 본인이 원하는 방식대로 하는거

대다수가 restfulapi고 최근에 나온 graphql API임

  • REST(REpresentational State Transfer)

REST API(Restful API)

<REST란?🤔>


“Representational State Transfer” 의 약자
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.

<REST가 필요한 이유>

👉‘애플리케이션 분리 및 통합’및 ‘다양한 클라이언트의 등장’
최근의 서버 프로그램은 다양한 브라우저와 아이폰 등 다양한 멀티 플랫폼이 생겨나며 그에 대한 서비스 지원을 모색한 결과 REST개념이 대두되었다.

<REST의 장단점>

1.장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다.
  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  • 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
  • 서버와 클라이언트의 역할을 명확하게 분리한다.

2.단점

  • 표준이 존재하지 않는다.
  • 사용할 수 있는 메소드가 4가지 밖에 없으며 HTTP Method 형태가 제한적이다.
  • 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재(put,deletes는 구형브라우저에서 사용이 안됨)

REST API란??

REST 기반으로 서비스 API를 구현한 것
최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.

<REST API의 특징>

사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다. REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다. 즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있다.

RESTful의 기준

‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있으며 REST원리는 따르는 시스템을 통틀어 RESTful이라고 한다.이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이 궁극적인 목적이자

RESTful 하지 못한 경우
Ex1) CRUD 기능을 모두 POST로만 처리하는 API
Ex2) route에 resource, id 외의 정보가 들어가는 경우(/students/updateName)

profile
🌱Backend Developer👩‍💻
post-custom-banner

0개의 댓글