Khác biệt giữa bản sửa đổi của “Giao diện lập trình ứng dụng”

Nội dung được xóa Nội dung được thêm vào
ArthurBot (thảo luận | đóng góp)
Xqbot (thảo luận | đóng góp)
n robot Thay: bg:Приложно-програмен интерфейс; sửa cách trình bày
Dòng 1:
{{Đổi hướng đến đây|API}}
[[HìnhTập tin:ApiWith3Clients.jpg|phải|100px|frame|API với 3 clients, dùng ý niệm [[UML]]]]
 
Một '''giao diện lập trình ứng dụng''' (tiếng anh ''Application Programming Interface'' hay ''API'') là một [[giao diện (khoa học máy tính)| giao diện]] mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể được tạo ra từ các chương trình máy tính khác, và/hoặc cho phép dữ liệu có thể được trao đổi qua lại giữa chúng. Chẳng hạn, một chương trình máy tính có thể (và thường là phải) dùng các hàm API của [[hệ điều hành]] để xin cấp phát bộ nhớ và truy xuất tập tin. Nhiều loại hệ thống và ứng dụng hiện thực API, như các hệ thống đồ họa, cơ sở dữ liệu, mạng, dịch vụ web, và ngay cả một số trò chơi máy tính.Đây là phần mềm hệ thống cung cấp đầy đủ các chức năng và các tài nguyên mà các lập trình viên có thể rút ra từ đó để tạo nên các tính năng giao tiếp người- máy như: các trình đơn kéo xuống, tên lệnh, hộp hội thoại, lệnh bàn phím và các cửa sổ. Một trình ứng dụng có thể sử dụng nó để yêu cầu và thi hành các dịch vụ cấp thấp do hệ điều hành của máy tính thực hiện. Hệ giao tiếp lập trình ứng dụng giúp ích rất nhiều cho người sử dụng vì nó cho phép tiết kiệm được nhiều thời gian tìm hiểu các chương trình mới, do đó khích lệ mọi người dùng nhiều ứng dụng hơn.
 
== Mô tả ==
Một trong các mục đích chính của một '''API''' là cung cấp khả năng truy xuất đến một tập các [[chương trình còn|hàm]] hay dùng — ví dụ, hàm để vẽ các [[cửa sổ(lập trình)|cửa sổ]] hay các [[icon]] trên màn hình. Các API, cũng như hầu hết các ''interfaces'', là trừu tượng (''abstract''). Phần mềm mà muốn cung cấp truy xuất đến chính nó thông qua các API cho sẵn, phải ''hiện thực'' API đó. Trong nhiều tình huống, một API thường là một phần của bộ ''SDK'', hay [[bộ phát triển phần mềm|software development kit]]. Một bộ SDK có thể bao gồm một API cũng như các công cụ/phần cứng, vì thế hai thuật ngữ này không thay thế cho nhau được.
 
Có nhiều [[mô hình thiết kế]] khác nhau cho các APIs. ''Interfaces'' nhằm là cách [[thực thi (máy tính)|thực thi]] nhanh nhất thường gồm các tập các [[chương trình con|hàm]], [[thủ tục]], [[biến]] và các [[cấu trúc dữ liệu]]. Tuy nhiên, các mô hình khác vẫn tồn tại, như bộ [[thông dịch (phần mềm máy tính)|thông dịch]] dùng để ước giá biểu thức trong [[ECMAScript]]/[[JavaScript]]. Một API tốt thường cung cấp một "hộp đen" hay là một lớp trừu tượng (''abstraction layer'') bao bọc nó, nhằm đảm bảo là nhà lập trình không thể biết cách hiện thực cụ thể bên trong của mỗi hàm trong API. Điều này làm cho việc thiết kế lại hay cải tiến hàm của API đó trở nên dễ dàng hơn vì nó không làm đỗ vỡ các đoạn mã khác mà có sử dụng các hàm đó.
 
Có hai dòng chính sách đối với việc công bố các APIs:
Dòng 14:
# Một số công ty thì cung cấp miễn phí APIs. Ví dụ, [[Microsoft]] công bố hầu như hoàn toàn thông tin về các API, để cho các phần mềm có thể được viết chạy trên nền Windows. Việc bán của các phần mềm hãng thứ 3 đồng thời với việc phải mua Hệ điều hành Microsoft Windows. Đây thường là các công ty thu lợi nhuận từ việc bán các hiện thực API.
 
Một số APIs, chẳng hạn các API là chuẩn cho một [[hệ điều hành]], được hiện thực dưới dạng các [[thư viện (phần mềm) | thư viện mã]] độc lập được phân phối kèm theo hệ điều hành. Một số khác thì đòi hỏi [[nhà sản xuất phần mềm]] phải tích hợp API trực tiếp vào trong chương trình. Microsoft Windows APIs đi kèm theo hệ điều hành cho phép mọi người có thể sử dụng chúng. Phần mềm cho các [[hệ thống nhúng]] như thiết bị chơi trò chơi thường thuộc vào loại tích hợp vào trong ứng dụng. Trong khi các tài liệu API chính thức của PlayStation là nên đọc, nhưng nó chẳng giúp ích gì nếu ta chẳng có các hiện thực của nó, dưới dạng một [[thư viện (khoa học máy tính)|thư viện]] độc lập hay [[bộ phát triển phần mềm]].
 
Một API mà cho phép truy xuất và sử dụng tự do được gọi là "mở." Các APIs được cung cấp bởi [[phần mềm mở]] (như mọi phần mềm được phân phối theo giấy phép đăng kí [[GNU]]), là mở theo đúng nghĩa, vì mọi người có thể xem [[mã nguồn]] của phần mềm và tìm ra API. Mặc dù việc tham khảo hiện thực vẫn tồn tại cho một API (như với [[Microsoft Windows]] cho [[Win32]] API), thì việc tạo thêm các hiện thực bổ sung vẫn có thể diễn ra. Ví dụ, hầu hết các Win32 API có thể được cung cấp từ hệ thống [[Unix|UNIX]] dùng phần mềm tên là [[Wine (phần mềm)|Wine]].
 
== Xem thêm ==
* [[Simple DirectMedia Layer]] - Thư viện lập trình đa phương tiện, đa hệ thống SDL
* [[Document Object Model]]
* [[Microsoft Platform Development Kit]] - Giao diện lập trình hệ thống Microsoft Windows
* [[Application binary interface]] (ABI)
* [[Ontology (computer science)]]
* [[Open Service Interface Definitions]] (OSID)
* [[Plugin]]
* [[DirectX]]
* [[Universal Home API]]
* [[BIOS call interface]]
* [[Single UNIX Specification]]
* [[Java API]]
* [[ASPI]] - giao diện lập trình linh kiện
* [[Carbon (computing)|Carbon]] và [[Cocoa (API)|Cocoa]]
 
== Liên kết ngoài ==
Dòng 52:
[[bn:অ্যাপলিকেশন প্রোগ্রামিং ইন্টারফেস]]
[[bs:Application Programming Interface]]
[[bg:Приложно-програмен интерфейс]]
[[bg:API]]
[[ca:API]]
[[cs:API]]