Giải ngố về API: Vì sao nói API có ý nghĩa sống còn với cả thế giới điện toán?

Nếu theo dõi những tin tức công nghệ tiên tiến, tối thiểu một tháng một lần bạn sẽ phát hiện cụm từ ” API “, ví dụ như ” Instagram khóa API khiến những ứng dụng bên thứ 3 thành đồ bỏ ” hoặc mới gần đây là ” Microsoft ra đời 22 API có tri giác để nhận diện xúc cảm, hành vi trong video, tự động hóa ‘ phiên dịch ‘ giọng nói ngọng nghịu của trẻ nhỏ hay tự động hóa miêu tả vật thể có trong hình ảnh ” .
Khi đọc những tin tức dạng này, bạn chắc rằng đã một lần tự hỏi ” API ” là gì ? Vì sao việc một công ty nào đó ra đời ( hay khóa ) API lại đáng chăm sóc ?

API không phải là một “giao diện” theo cách hiểu thông thường

Một trong những lý do khiến cho người tiêu dùng phổ thông (không có hiểu biết về lập trình) tại Việt Nam không thực sự hiểu rõ về API là bởi tên gọi tiếng Việt khá tối nghĩa: giao diện lập trình ứng dụng. “Lập trình ứng dụng” thì đúng nghĩa, nhưng “giao diện” thì không hẳn là chính xác.

 Nói đến API đám mây của Google không phải là nói tới giao diện web trong hình. Nói đến API đám mây của Google không phải là nói tới giao diện web trong hình .
Nguyên gốc API viết khá đầy đủ trong tiếng Anh là ” application programming interface “, trong đó chữ ” interface ” đang bị dịch thành ” giao diện “. Thực ra, trong những toàn cảnh khác thì cách dịch này là đúng mực, ví dụ như GUI ( graphical user interface ) dịch thành ” giao diện đồ họa người dùng “, còn CLI ( command line interface ) dịch thành ” giao diện dòng lệnh “. Từ ” giao diện ” ở đây được hiểu là ” mặt phẳng ” để con người tương tác với máy, như khi tất cả chúng ta dùng hành lang cửa số để tương tác với Windows hoặc dùng những câu lệnh để tương tác với DOS .
Nhưng nếu bạn mang cách hiểu ” giao diện ” như trong những cụm từ ” giao diện hành lang cửa số “, ” giao diện cảm ứng “, ” giao diện iOS ” để vận dụng vào từ ” giao diện ” trong API thì bạn đã hiểu sai. API là một ” giao diện ” giữa ứng dụng với ứng dụng. API là cách để những ứng dụng ( hệ quản lý, ứng dụng, những module trong mạng lưới hệ thống doanh nghiệp v … v … ) tiếp xúc với nhau và tận dụng năng lượng của nhau .

Vì sao phần mềm lại cần giao tiếp và tận dụng phần mềm khác?

Vì thế giới điện toán yên cầu nhiều ứng dụng .
Khi bạn sử dụng một ứng dụng, bất kể đó là một ứng dụng di động, một website hay một game PS4 thì thưởng thức của bạn thực ra là thành quả lao động phối hợp của ngành công nghiệp ứng dụng. Ví dụ, khi bạn chơi Candy Crush trên iPhone 6 ví dụ điển hình, bạn đang sử dụng một ứng dụng game ( Candy Crush ) và một hệ điều hành quản lý ( iOS ) .
Khi mô tả tới một trải nghiệm phần mềm là bạn đang nhắc tới nhiều thành phần.Khi miêu tả tới một thưởng thức ứng dụng là bạn đang nhắc tới nhiều thành phần .
Rõ ràng là thưởng thức Candy Crush không chỉ yên cầu duy nhất những ứng dụng của King. Điều gì xảy ra khi không có hệ quản lý và trình duyệt ? Khối lượng việc làm mà King phải thực thi sẽ tăng kinh khủng :
1, nghiên cứu và điều tra mã máy, nghiên cứu và điều tra cách giải phóng RAM, nghiên cứu và điều tra cách ghi luồng nhị phân lên ổ cứng, nghiên cứu và điều tra cách ra lệnh cho card màn hình hiển thị để xuất tín hiệu hiển thị … Nói chung là làm toàn bộ những tác vụ cấp thấp vốn được dành cho hệ quản lý và điều hành .
2, phong cách thiết kế giao diện và chính sách chơi game cho Candy Crush .
Rõ ràng là King chỉ muốn làm việc làm ( 2 ) nhưng vẫn phải thực thi một việc làm đồ sộ hơn rất nhiều. Mỗi thưởng thức trên máy tính đều là tác dụng tích hợp của nhiều ứng dụng : hệ quản lý, ứng dụng, dịch vụ web, ứng dụng trên sever … Nếu trải nghiệm số của tất cả chúng ta không được chia làm nhiều ứng dụng có năng lực tiếp xúc và tận dụng lẫn nhau, mỗi nhà phân phối ứng dụng hay nhà phong cách thiết kế web đều sẽ phải thực thi thêm rất nhiều việc làm nằm ngoài trọng tâm của họ. Kịch bản này bảo vệ cho cả quốc tế … sụp đổ .

Bản thân mỗi “phần mềm” cũng buộc phải có nhiều thành phần giao tiếp và tận dụng lẫn nhau. Ví dụ, phần mềm trên máy chủ của Facebook.com chắc chắn chắc chắn sẽ có nhiều thành phần, có thể kể tới: một thành phần chuyên xử lý ảnh, một thành phần chuyên xác thực danh tính người dùng, một thành phần chuyên phân tích dữ liệu để hiển thị ra bài đăng phù hợp với sở thích của bạn nhất.

Mỗi phần mềm, mỗi module, mỗi package có thể được ví như một bánh răng cưa.Mỗi ứng dụng, mỗi module, mỗi package hoàn toàn có thể được ví như một bánh răng cưa .
Nhìn chung, một thưởng thức ứng dụng không thiếu là do nhiều ứng dụng tiếp xúc với nhau mà thành, mỗi ứng dụng cũng là do nhiều module, package phối hợp. Ý nghĩa sống còn của nguyên tắc này là ở chỗ những lập trình viên không hề một mình tạo ra một hệ quản lý, một trình duyệt, một website hay một module. Việc chia nhỏ những thưởng thức ứng dụng ra nhiều lớp sẽ giúp cho lập trình viên này hoàn toàn có thể tận dụng lại thành quả của lập trình viên khác, module này hoàn toàn có thể tận dụng module khác, ứng dụng này hoàn toàn có thể tận dụng ứng dụng khác .
Bạn hoàn toàn có thể tưởng tượng một ứng dụng, hay một module bên trong một ứng dụng là một bánh răng cưa. Mỗi bánh răng cưa hoàn toàn có thể quay độc lập, nhưng để tạo ra thưởng thức ứng dụng thì những bánh răng cưa đó phải phối 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 .

API là khớp nối giữa các thành phần phần mềm

Nếu bạn có một tính năng cần cung ứng cho module khác, ứng dụng khác, bạn sẽ mở ra một API để tác giả của module / ứng dụng kia truy vấn vào .
Ví dụ, trên toàn bộ những thiết bị điện toán thì hệ quản lý là ứng dụng duy nhất có năng lực truy vấn tới những thiết bị phần cứng. Do đó, hệ điều hành quản lý sẽ phải cung ứng API để ghi file, đọc file, thu và truyền tài liệu từ card đồ họa, thu và truyền tài liệu từ card mạng v … v … Khi cần ghi file ví dụ điển hình, những ứng dụng sẽ gọi tới API tương ứng của hệ điều hành quản lý. Điều này bảo vệ cho nhà tăng trưởng ứng dụng không cần phải lo tìm hiểu và khám phá mã nhị phân và những nguyên tắc máy móc phức tạp để tương tác với ổ cứng .
Nói ví von, cung ứng API giống như là lớn tiếng công bố ” Này quốc tế, tôi có năng lực làm được điều này “. Khi một ứng dụng gọi tới API của bạn, ứng dụng đó nói với ứng dụng của bạn rằng ” Tôi biết anh hoàn toàn có thể thực thi hành vi sau đây, hãy làm điều đó cho tôi “. Phần mềm gọi hoàn toàn có thể cung ứng tài liệu nguồn vào và yên cầu tài liệu đầu ra từ ứng dụng cung ứng API hoặc không, nhưng trong mọi trường hợp, để hoàn toàn có thể liên tục hoạt động giải trí thì ứng dụng gọi thực sự cần ứng dụng cung ứng phải triển khai những gì đã cam kết qua API .
API là những khớp nối trên bánh răng cưa phần mềm.API là những khớp nối trên ” bánh răng cưa ” ứng dụng .
Hoặc, bạn hoàn toàn có thể sử dụng thông tin tài khoản Facebook của mình để đăng nhập vào rất nhiều website không do Facebook trấn áp. Để người dùng của mình hoàn toàn có thể sử dụng thông tin cá thể Facebook trên những 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 thông tin 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ì những website / ứng dụng này sẽ ” gọi ” tới API của Facebook. Công việc xác nhận danh tính sẽ được Facebook thực thi, những website và những ứng dụng không cần phải nhúng tay vào. Sau khi xác nhận xong, Facebook sẽ ” ném ” lại cho những website 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 Lê Hoàng, thông tin tài khoản Facebook là abcxyz ” ví dụ điển hình .
Nhờ có API mà Facebook hoàn toàn có thể triển khai tính năng xác nhận hộ những dịch vụ khác. Trở lại với 2 thông tin mà tất cả chúng ta nhắc tới ở đầu bài viết. ” Microsoft phân phối 22 API tri giác ” có nghĩa là gì ? Điều này có nghĩa rằng bạn hoàn toàn có thể mang năng lực ” tri giác ” do Microsoft cung ứng vào bên trong ứng dụng của bạn. Ví dụ, nếu muốn tạo ra một ứng dụng có hiệu ứng ghép những giọt nước mắt ” ảo ” lên khuôn mặt của những người đang buồn trong ảnh chụp, bạn hoàn toàn có thể gọi tới API nhận diện xúc cảm của Microsoft để tìm ra toàn bộ những người xuất hiện buồn. Tất cả những gì ứng dụng của bạn cần làm là thêm hiệu ứng nước mắt ảo .

Bạn có vẻ là người được lợi, nhưng thực chất bạn đang phụ thuộc vào Microsoft. Nếu một ngày nào đó Microsoft đóng API tri giác của họ, ứng dụng của bạn cũng trở thành đồ bỏ. 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.

Các phần mềm muốn tương tác với nhau thì phải gọi API của nhau.Các ứng dụng muốn tương tác với nhau thì phải ” gọi ” API của nhau .
Thực ra, ngày này cứ nói tới những bước tiến ứng dụng là nói tới API. Các đám mây như Microsoft Azure, Amazon Web Services hay Google Cloud Platform được cung ứng qua API. Các ứng dụng nổi tiếng của Apple như HealthKit, HomeKit hay toàn bộ những SDK ( gói công cụ tăng trưởng ứng dụng ) nói chung cũng đa phần 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 phủ nhận ngán ngẩm khi phát hiện thuật ngữ ” SDK ” nữa, bởi mỗi SDK thực ra gồm có nhiều API có sẵn để những lập trình viên hoàn toàn có thể tạo ra loại sản phẩm riêng một cách thuận tiện hơn. Ví dụ, SDK HealthKit có nhiều API để tăng trưởng ứng dụng sức khỏe thể chất một cách thuận tiện. Các thành phần khác của SDK như những công cụ tăng trưởng, những 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 khi nào code thì những thông tin về API sẽ không khi nào tác động ảnh hưởng trực tiếp tới bạn. Nhưng cũng vì vậy mà mà chúng có ý nghĩa quan trọng hơn tổng thể những loại sản phẩm hoàn thành xong : hoàn toàn có thể nói rằng thiếu Windows, thiếu iOS hay thiếu Android thì loài người hoàn toàn có thể vẫn sống sót được, nhưng thiếu đi khái niệm API thì chắc như đinh là quốc tế … ngừng quay. Các API trong hệ quản lý và điều hành là cơ sở để quốc tế ứng dụng bùng nổ, những API giữa những module trong những mạng lưới hệ thống doanh nghiệp là cơ sở để kinh tế tài chính tăng trưởng. Các API cải tiến vượt bậc, ví dụ như API của Microsoft ví dụ điển hình, sẽ nâng tầm chất lượng ứng dụng và dịch vụ ứng dụng lên những tầm cao mới .