API ( Application Programming Interface 애플리케이션 프로그램 인터페이스)
API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체
식당에 가면 주방에 가서 요리를 주문하지 않고 점원에게 요리를 주문한다. 그리고 점원은 요리를 만들어 달라고 요청을 한다. 그리고 요리가 완성되면 다시 점원이 손님에게 요리를 전달한다.
여기서 손님은 클라이언트, 주방에서 일하는 요리사를 서버, 그리고 중간에 점원을 API라고 생각하면 된다.
API역할
1. 서버와 데이터베이스에 대한 출입구 역할
모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 된다. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다.
2. 애플리케이션과 기기가 원활하게 통신의 역할
여기서 애플리케이션이란 우리가 흔히 알고 있는 스마트폰 어플이나 프로그램을 말한다. API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.
3. 모든 접속을 표준화의 역할
API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다.
API유형
1. private API
private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 사용, 노출 안됨
2. public API
public API는 개방형 API로, 모두에게 공개. 누구나 제한없이 API를 사용
3. partner API
partner API 기업이 데이터 공유에 동의하는 특정인들만 사용.
비즈니스 관계에서 사용되는 편이며, 종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용
REST API (REpresentational State Transfer)
웹의 장점을 최대한 활용하는 API, 자원을 이름으로 구분해 자원의 상태를 주고받는 API방식
URL의 설계방식을 말함
REST API특징
REST API는 서버/클라이언트 구조, 무상태, 캐시처리가능, 계층화, 인터페이스 일관성과 같은 특징이 있다.
REST API 장점
- url만 보고도 무슨 행동을 하는 API인지 명확하게 알수 있다.
- 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리됨
- http 표준을 사용하는 모든 플랫폼에서 사용할 수 있다.
REST API 단점
- 사용할 수 있는 http 메서드 (GET, POST ) 같은방식의 개수에 제한이있음
- 설계 를 하기 위해 공식적으로 제공되는 표준 규약이 없다.
REST API 사용하는 방법
1. url에는 동사를 쓰지말고, 자원을 표시해야한다.
/articles/1 - 적합
/articles/show/1 - 부적합
2. 동사는 http메서도로 사용
설명 | 적합한 http 메서드와 url |
id가 1인 블로그 글을 조회하는 api | GET /articles/1 |
블로그 글을 추가하는 api | POST /articles/1 |
블로그 글을 수정하는 api | PUT /articles/1 |
블로그 글을 삭제하는 api | DELETE /articles/1 |
참고 사이트
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html