+2

API - Yếu tố sống còn của thế giới điện toán

Trong quá trình dịch tài liệu , trao đổi với khách hàng tôi đã gặp rất nhiều cụm từ API và cũng chỉ mang mác hiểu về nó như là 1 yếu tố không thể thiếu trong các công đoạn phát triển phần mềm. Vậy API thực sự là gì, công dụng của nó đến đâu mà tần suất xuất hiện cũng như tầm quan trọng của nó lại được đánh giá cao đến vậy.

Nguyên gốc API viết đầy đủ trong tiếng Anh là "application programming interface". API là một "giao diện" giữa phần mềm với phần mềm. API là cách để các phần mềm (hệ điều hành, ứng dụng, các module trong hệ thống doanh nghiệp v…v…) giao tiếp với nhau và tận dụng năng lực của nhau.

Vì sao các phần mềm lại cần giao tiếp với nhau và cần tận dụng năng lực của nhau?

Vì thế giới điện toán ngày nay ngày càng đòi hỏi mức độ phức tạp cũng như sự tiện lợi hóa của các phần mềm. 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

API là điểm mấu chốt kết nối các thành phần phần mềm

Nếu bạn có một tính năng cần cung cấp cho module khác, phần mềm khác, bạn sẽ mở ra một API để tác giả của module/phần mềm kia truy cập vào. Một so sánh vui cho dễ hiểu là : Khi bạn cung cấp API thì bạn đưa ra thông tin là : “ Tôi có khả năng làm được điều abc” , khi 1 phần mềm nào đó gọi tới API của bạn thì phần mềm đó sẽ ra lệnh rằng : “ Tôi biết anh có thể làm được điều abc nên hãy thể hiện tài năng đi” Nên chúng ta có thể hiểu là phần mềm gọi sẽ cung cấp dữ liệu đầu vào và đòi hỏi dữ liệu đầu ra từ phần mềm cung cấp API hoặc không. Nhưng trong mọi trường hợp, để có thể tiếp tục hoạt động thì phần mềm gọi thực sự cần phần mềm cung cấp phải thực hiện những gì đã cam kết qua API.

Hoặc, bạn có thể sử dụng tài khoản Facebook của mình để đăng nhập vào rất nhiều trang web không do Facebook kiểm soát. Để người dùng của mình có thể sử dụng thông tin cá nhân Facebook trên các trang này, điều duy nhất mạng xã hội này cần làm là tạo ra một API đăng nhập tài khoản Facebook. Mỗi lần bạn click vào nút "Đăng nhập với Facebook" trên Instagram, WhatsApp hay Quora thì các trang web/ứng dụng này sẽ "gọi" tới API của Facebook. Công việc xác thực danh tính sẽ được Facebook thực hiện, các trang web và các ứng dụng không cần phải nhúng tay vào. Sau khi xác thực xong, Facebook sẽ "ném" lại cho các trang web và ứng dụng gọi tới API của mình trên một gói tin có nội dung đại loại như "Đây là anh abc, tài khoản Facebook là abcxyz" chẳng hạn. Nhờ có API mà Facebook có thể thực hiện tính năng xác thực hộ các dịch vụ khác.

Hoặc như gần đây tôi có đọc được bài báo "Microsoft cung cấp 22 API tri giác" . Bạn có thể mang khả năng "tri giác" do Microsoft cung cấp vào bên trong ứng dụng , các sản phẩm của bạn. Ví dụ, nếu muốn tạo ra một app có hiệu ứng ghép những icon vui nhộn lên khuôn mặt của những người đang cười trong ảnh chụp, bạn có thể gọi tới API nhận diện cảm xúc của Microsoft để tìm ra tất cả những người có mặt cười. Tất cả những gì ứng dụng của bạn cần làm là thêm hiệu ứng icon. Bạn có vẻ quá lời nếu sử dụng sản phẩm này của Microsoft , rất nhiều idea điên dồ, rất nhiều ý tưởng táo bạo sẽ được thực hiện một cách dễ dàng. Nhưng điều gì sẽ xảy ra nếu một ngày nào đó Microsoft đóng API tri giác của họ, app của bạn cũng trở thành đồ bỏ đi. Các ứng dụng bên thứ 3 dùng để truy cập Instagram hay các ứng dụng có thể nhắn tin trên nền Facebook cũng vậy, chúng phụ thuộc vào "lòng tốt" của Instagram và Facebook để có thể tiếp tục tồn tại.

Nói tóm gọn lại là đối với một end user thì sự tồn tại của API chẳng nói lên ý nghĩa gì , nhưng đối với 1 lập trình viên thì nó là cả 1 gia tài , chúng có ý nghĩa quan trọng hơn tất cả các sản phẩm hoàn thiện. 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.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.