Một giao diện lập trình ứng dụng (API) là một giao diện mà hệ thống máy tính hay ứng dụng cung cấp để các chương trình khác có thể tạo yêu cầu dịch vụ và/hoặc trao đổi dữ liệu. Ví dụ, ứng dụng thường sử dụng các hàm API của hệ điều hành để cấp phát bộ nhớ và truy xuất tập tin. Nhiều hệ thống và ứng dụng có API, bao gồm hệ thống đồ họa, cơ sở dữ liệu, mạng, dịch vụ web, và một số trò chơi máy tính. Đây là phần mềm hệ thống cung cấp chức năng và tài nguyên cho lập trình viên để xây dựng các giao diện người - máy như trình đơn, lệnh bàn phím và cửa sổ. Một ứng dụng có thể yêu cầu và thực hiện các dịch vụ cấp thấp từ hệ điều hành qua API. API giúp người dùng tiết kiệm thời gian tìm hiểu chương trình mới, khuyến khích họ sử dụng nhiều ứng dụng hơn.
Mô tả
Một trong những mục tiêu chính của một API là cung cấp quyền truy cập đến một tập hợp các hàm phổ biến, chẳng hạn như hàm để vẽ cửa sổ hoặc biểu tượng trên màn hình. Các API, như hầu hết các interfaces, là trừu tượng (abstract). Để cung cấp truy cập qua API, phần mềm cần phải hiện thực API đó. Thường thì một API là một phần của bộ SDK (software development kit). Bộ SDK có thể bao gồm API cùng với các công cụ/phần cứng, vì vậy hai thuật ngữ này không hoàn toàn thay thế cho nhau.
Có nhiều mô hình thiết kế khác nhau cho các API. Các interfaces thường bao gồm tập hợp các hàm, thủ tục, biến và cấu trúc dữ liệu để thực thi nhanh chóng. Tuy nhiên, vẫn có những mô hình khác, chẳng hạn như các bộ thông dịch để ước lượng biểu thức trong ECMAScript/JavaScript. Một API tốt thường cung cấp một 'hộp đen' hoặc lớp trừu tượng (abstraction layer) bao quanh, đảm bảo rằng lập trình viên không biết cách thực thi chi tiết bên trong từng hàm của API. Điều này giúp dễ dàng hơn trong việc thiết kế lại hoặc cải tiến các hàm API mà không làm ảnh hưởng đến mã nguồn khác sử dụng các hàm đó.
Có hai chính sách chính về việc công bố các API:
- Có những công ty bảo vệ API của họ một cách chặt chẽ. Ví dụ, Sony thường chỉ cung cấp API chính thức của PlayStation 2 cho các nhà phát triển đã đăng ký. Sony muốn giới hạn số lượng nhà phát triển trò chơi cho PlayStation 2 và tối đa hóa lợi nhuận từ họ. Đây là chính sách phổ biến với các công ty không kiếm lợi từ việc bán API của họ. Tuy nhiên, PlayStation 3 đã công bố hoàn toàn API của mình.
- Ngược lại, một số công ty cung cấp API miễn phí. Ví dụ, Microsoft công bố hầu hết thông tin về API, cho phép phần mềm được phát triển trên nền Windows. Việc bán phần mềm bên thứ ba thường đi kèm với việc phải mua hệ điều hành Microsoft Windows. Chính sách này thường thấy ở các công ty kiếm lợi từ việc bán API của họ.
Một số API, như các API tiêu chuẩn của hệ điều hành, được phân phối dưới dạng thư viện mã độc lập đi kèm với hệ điều hành. Một số khác yêu cầu nhà phát triển tích hợp API trực tiếp vào ứng dụng của mình. API của Microsoft Windows đi kèm với hệ điều hành, cho phép người dùng sử dụng chúng. Các phần mềm cho hệ thống nhúng như thiết bị chơi trò chơi thường yêu cầu tích hợp API vào ứng dụng. Mặc dù tài liệu API chính thức của PlayStation có giá trị tham khảo, nhưng không hữu ích nếu không có thực thi API dưới dạng thư viện độc lập hoặc bộ công cụ phát triển phần mềm.
Một API cho phép truy cập và sử dụng tự do được gọi là 'mở.' APIs của phần mềm mã nguồn mở (như phần mềm phân phối theo giấy phép GNU) là mở theo nghĩa thực sự, vì mọi người có thể xem mã nguồn và tìm hiểu API. Mặc dù việc tham khảo thực thi của API vẫn có thể tồn tại (như với Win32 API của Microsoft Windows), việc tạo ra các thực thi bổ sung vẫn có thể thực hiện. Ví dụ, nhiều API Win32 có thể được cung cấp trên hệ thống UNIX bằng phần mềm tên là Wine.
- Thư viện Simple DirectMedia Layer - SDL: Nền tảng lập trình đa phương tiện và hệ thống
- Document Object Model (DOM)
- Microsoft Platform Development Kit - Giao diện lập trình hệ thống Windows của Microsoft
- Application Binary Interface (ABI)
- Khái niệm bản thể luận
- Open Service Interface Definitions (OSID)
- Plugin
- DirectX
- Universal Home API
- Giao diện gọi BIOS
- Single UNIX Specification
- Java API
- ASPI - Giao diện lập trình thiết bị
- Carbon và Cocoa
Liên kết bên ngoài
- eBay API
- EVDB API Lưu trữ ngày 26-12-2005 tại Wayback Machine
- Flickr API
- Google API
- Linux Kernel API Lưu trữ ngày 25-12-2005 tại Wayback Machine
- Skype API Lưu trữ ngày 27-12-2005 tại Wayback Machine
- Yahoo API Lưu trữ ngày 19-12-2011 tại Wayback Machine
- Java API
- PayPal API Lưu trữ ngày 15-04-2023 tại Wayback Machine
Hệ điều hành | |||||
---|---|---|---|---|---|
Chung |
| ||||
Hạt nhân |
| ||||
Quản lý tiến trình |
| ||||
Quản lý bộ nhớ và bảo vệ tài nguyên |
| ||||
Truy cập lưu trữ và hệ thống tập tin |
| ||||
Danh sách |
| ||||
Khái niệm khác |
|