Application Programming Interfaces의 약자로, 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
API는 프로그램이 이해할 수 있게 명령 목록을 정리하고, 명령을 받으면 응용프로그램과 상호작용하여 명령에 대한 값을 전달한다. 즉 API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라고 할 수 있다.
Create, Read, Update, Delete 의 앞 알파벳을 따서 CRUD 라고 한다. 이름은 약간씩 다를 수 있지만 대부분의 프로그램이 가지고 있는 특성이며, 데이터베이스 애플리케이션에서 수행할 수 있는 기본 작업을 일컫는다.
소프트웨어, 특히 웹 API에 널리 사용되는 아키텍처 스타일이다. 다음 5가지 설계 제약조건으로 정의된다.
웹을 통해 제공되는 REST API의 특성으로 인해 API는 GET, POST 등과 같은 자체 데이터 조작 방법이 있는 HTTP 프로토콜을 통해 클라이언트와 상호작용한다.
그러나 CRUD와 REST가 완전히 똑같은 것은 아니다.
CRUD는 데이터베이스 애플리케이션과 상호 작용하기 위한 네가지 주요 기능이다. CRUD는 데이터베이스 설정에서 영구적인 기록을 하기 위한 주기이고, RESTful 아키텍처의 목표를 준수하기 위해 REST 명령에 매핑된다. REST API가 적절한 HTTP메서드를 사용한다면 CRUD 이상의 기능을 발휘한다.
참고
API(애플리케이션 프로그래밍 인터페이스)란 - 개념, 기능, 장점
API란? 비개발자가 알기 쉽게 설명해드립니다!
CRUD vs. REST: What's the Differece?
REST vs CRUD: Explaining REST & CRUD Operations