Application Programming Interface (API)

Tiếp nối loạt bài giới thiệu về các công nghệ trong lĩnh vực CNTT, hôm nay chúng ta tìm hiểu 1 trong những những khái niệm quan trọng nhất của CNTT, đó là Application Programming Interface, viết tắt là API.

API là gì?

Trong lập trình máy tính, giao tiếp lập trình ứng dụng (Application Programming Interface – API) là 1 tập hợp các định nghĩa, giao thức, và các công cụ của các chương trình con, các thông tin này được sử dụng để xây dựng nên các phần mềm ứng dụng. Về tổng quát, nó là 1 tập hợp các phương thức được định nghĩa rõ ràng cho việc giao tiếp giữa các thành phần phần mềm khác nhau. 1 API tốt sẽ giúp việc phát triển 1 chương trình máy tính trở nên dễ dàng hơn bằng việc cung cấp tất cả các khối xây dựng (building block) mà sau đó sẽ được kết hợp với nhau bởi lập trình viên.

API chỉ rõ cách mà các thành phần của phần mềm sẽ tương tác với nhau. Thêm nữa, các API được sử dụng khi lập trình các thành phần giao diện người dùng (GUI).

Có nhiều loại API khác nhau dành cho các hệ điều hành, các ứng dụng và website. 1 API có thể được dùng cho 1 hệ thống web, hệ điều hành, cơ sở dữ liệu, phần cứng máy tính hay các thư viện phần mềm. Đặc tả kỹ thuật của API có thể có nhiều dạng, nhưng thường bao gồm các đặc tả kỹ thuật cho chương trình, cấu trúc dữ liệu, các lớp đối tượng, biến và các lời gọi từ xa (remote call).

POSIX, Microsoft Windows API, C++ Standard Template Library, Java API, Google Map API là những ví dụ cho những dạng khác nhau của các API.

Vì sao API cần thiết?

Vì thế giới điện toán đòi hỏi nhiều phần mềm, để các phần mềm có thể liên kết, làm việc với nhau thì cần phải có các API.

Nhìn chung, một trải nghiệm phần mềm đầy đủ là do nhiều phần mềm giao tiếp với nhau mà thành, mỗi phần mềm cũng là do nhiều module, package kết hợp. Ý nghĩa sống còn của nguyên tắc này là ở chỗ các lập trình viên không thể một mình tạo ra một hệ điều hành, một trình duyệt, một trang web hay một module. Việc chia nhỏ các trải nghiệm phần mềm ra nhiều lớp sẽ giúp cho lập trình viên này có thể tận dụng lại thành quả của lập trình viên khác, module này có thể tận dụng module khác, phần mềm này có thể tận dụng phần mềm khác.

Bạn có thể hình dung một phần mềm, hay một module bên trong một phần mềm là một bánh răng cưa. Mỗi bánh răng cưa có thể quay độc lập, nhưng để tạo ra trải nghiệm phần mềm thì các bánh răng cưa đó phải kết hợp với nhau, bánh răng cưa này tạo lực cho bánh răng cưa nằm sát.

Thực ra, ngày nay cứ nói tới các bước tiến phần mềm là nói tới API. Các đám mây như Microsoft Azure, Amazon Web Services hay Google Cloud Platform được cung cấp qua API. Các phần mềm nổi tiếng của Apple như HealthKit, HomeKit hay tất cả các SDK (gói công cụ phát triển phần mềm) nói chung cũng chủ yếu quan trọng nhất là API. Nếu hiểu thế nào là API thì bạn cũng không cần phải lắc đầu ngán ngẩm khi bắt gặp thuật ngữ “SDK” nữa, bởi mỗi SDK thực chất bao gồm nhiều API có sẵn để các lập trình viên có thể tạo ra sản phẩm riêng một cách dễ dàng hơn. Ví dụ, SDK HealthKit có nhiều API để phát triển ứng dụng sức khỏe một cách dễ dàng. Các thành phần khác của SDK như các công cụ phát triển, các tài liệu hướng dẫn chỉ là thứ yếu so với API.

Nói tóm lại, nếu bạn không bao giờ code thì các thông tin về API sẽ không bao giờ ảnh hưởng trực tiếp tới bạn. Nhưng cũng vì thế mà chúng có ý nghĩa quan trọng hơn tất cả các sản phẩm hoàn thiện: có thể nói rằng thiếu Windows, thiếu iOS hay thiếu Android thì loài người có thể vẫn sống sót được, nhưng thiếu đi khái niệm API thì chắc chắn là thế giới… ngừng quay. Các API trong hệ điều hành là cơ sở để thế giới ứng dụng bùng nổ, các API giữa các module trong các hệ thống doanh nghiệp là cơ sở để kinh tế phát triển. Các API đột phá, ví dụ như API của Microsoft chẳng hạn, sẽ nâng tầm chất lượng ứng dụng và dịch vụ phần mềm lên các tầm cao mới.

Những API phổ biến hiện nay

ProgrammableWeb, website theo dõi hơn 15.500 API, liệt kê Google Maps, Twitter, YouTube, Flickr và Amazon Product Advertising là những API được sử dụng phổ biến nhất hiện nay.

1. Google Maps API: cho phép người phát triển nhúng Google Map vào các trang web, sử dụng giao tiếp Javascript hay Flash. Google Maps API được thiết kế để làm việc trên các thiết bị di động và các trình duyệt máy tính.

2. YouTube API: cho phép người phát triển tích hợp các video trên YouTube và các chức năng vào các website hay các ứng dụng. YouTube API bao gồm YouTube Analytics API, YouTube Data API, YouTube Live Streaming API, YouTube Player API và các API khác.

3. Flickr API: dùng để truy cập vào dữ liệu Flick photo sharing community data. Flickr API chứa 1 tập các phương thức có thể gọi, và 1 vài API endpoint.

4. Twitter API: Twitter cung cấp 2 API. REST API cho phép các nhà phát triển truy cập vào core data của Twitter và Search API cung cấp các phương thức cho các nhà phát triển tương tác với Twitter Search và các trend data.

5. Amazon Product Advertising API: cho phép nhà phát triển truy cập đến chức năng lựa chọn và khám phá sản phẩm của Amazon để quảng cáo các sản phẩm của Amazon để tạo doanh thu cho website.

Leave a Reply