API(API, Application Programming Interface)란?
컴퓨터 프로그램끼리 통신하는 방법이다. 즉, 컴퓨터와 컴퓨터 사이에 있는 중계 계층.
A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 한다고 할 때 어떻게 통신할 것인지, 어떠한 데이터를 주고 받을 건지 등에 대한 방법이 정의된 중계계층이 API명세서이다.
사용자가 브라우저를 통해 서버에 요청을 하면 API가 중간에서 처리하여 직접 서버의 데이터베이스에 접근하는 것을 막아준다.
제공자 입장: DB 설계 구조나 드러내고 싶지 않은 데이터베이스의 테이블 정보, 서버의 상수값 등을 드러내지 않고 드러내고 싶은 부분만을 드러낼 수 있다.
또한, 필요한 데이터가 발생할 때 해당 API를 호출하여 한곳에 모을 수 있다.
사용자 입장: 해당 서비스가 어떻게 구현되는지 알 필요없이 필요한 정보만을 받을 수 있다.
내부 DB, 서버의 로직이 변경이 되어도 매번 사용자가 앱을 업데이트하지 않아도 된다.
권한 유형 | 설명 | 활용 예시 |
---|---|---|
private | 내부적으로 사용되며 주로 hash-key를 이용한 서버 간 통신 | 비즈니스 파트너와의 비밀스러운 통신 |
public | 누구나 사용 가능하며 일일 요청 제한 등으로 관리 | 공개적인 서비스로 많은 사용자에게 제공 |
Private
API는 내부에서 사용되며, 주로 hash-key를 활용하여 서버 간의 통신을 수행한다. hash-key를 공유함으로써 비밀스러운 정보를 안전하게 주고받을 수 있다.
Public
API는 누구나 사용 가능한 열린 API다. 일반적으로 많은 사용자에게 서비스를 제공하기 위해 사용되며, 하루 요청 횟수의 제한 등의 방법으로 트래픽을 관리한다. 공개적인 서비스에서 활용되며, 다양한 사용자들이 API를 이용할 수 있다.
ex) ⬇️ 네이버 검색 - 일일 25000회로 제한한 예
우리 프로젝트에서는 각각의 기능설명과 HTTP메소드, 엔트포인트, 상태코드, JSON타입으로 요청 및 응답으로 API명세서를 작성하였다.