API là gì?

Bạn có thể đã thấy thuật ngữ “API” xuất hiện. Các bản cập nhật hệ điều hành, trình duyệt web và ứng dụng thường thông báo các API mới cho các nhà phát triển. Nhưng API là gì?

Giao diện lập trình ứng dụng

Thuật ngữ API là một từ viết tắt, và nó là viết tắt của “Giao diện lập trình ứng dụng”.

Hãy nghĩ về một API giống như một thực đơn trong nhà hàng. Thực đơn cung cấp danh sách các món ăn bạn có thể gọi, cùng với mô tả của từng món ăn. Khi bạn chỉ định món bạn muốn trong thực đơn, nhà bếp của nhà hàng sẽ thực hiện công việc và cung cấp cho bạn một số món ăn đã hoàn thành. Bạn không biết chính xác cách nhà hàng chuẩn bị món ăn đó và bạn không thực sự cần.

Tương tự, một API liệt kê một loạt các hoạt động mà các nhà phát triển có thể sử dụng, cùng với mô tả về những gì họ làm. Ví dụ: nhà phát triển không nhất thiết phải biết cách hệ điều hành xây dựng và trình bày hộp thoại “Lưu dưới dạng”. Họ chỉ cần biết rằng nó có sẵn để sử dụng trong ứng dụng của họ.

Đây không phải là một phép ẩn dụ hoàn hảo, vì các nhà phát triển có thể phải cung cấp dữ liệu của riêng họ cho API để nhận được kết quả, vì vậy có lẽ nó giống như một nhà hàng sang trọng, nơi bạn có thể cung cấp một số nguyên liệu của riêng mình cho nhà bếp.

Nhưng nhìn chung thì nó chính xác. API cho phép các nhà phát triển tiết kiệm thời gian bằng cách tận dụng quá trình triển khai của nền tảng để thực hiện công việc thực tế. Điều này giúp giảm số lượng nhà phát triển mã cần tạo và cũng giúp tạo ra tính nhất quán hơn giữa các ứng dụng cho cùng một nền tảng. API có thể kiểm soát quyền truy cập vào tài nguyên phần cứng và phần mềm.

API làm cho cuộc sống dễ dàng hơn cho nhà phát triển

Giả sử bạn muốn phát triển một ứng dụng cho iPhone. Hệ điều hành iOS của Apple cung cấp một số lượng lớn các API — như mọi hệ điều hành khác — để giúp bạn điều này dễ dàng hơn.

Ví dụ: nếu bạn muốn nhúng trình duyệt web để hiển thị một hoặc nhiều trang web, bạn không phải lập trình trình duyệt web của riêng mình từ đầu chỉ dành cho ứng dụng của bạn. Bạn sử dụng API WKWebView để nhúng đối tượng trình duyệt WebKit (Safari) vào ứng dụng của mình.

Nếu bạn muốn chụp ảnh hoặc quay video từ máy ảnh của iPhone, bạn không cần phải viết giao diện máy ảnh của riêng mình. Bạn sử dụng API máy ảnh để nhúng máy ảnh tích hợp sẵn của iPhone vào ứng dụng của mình. Nếu các API không tồn tại để giúp việc này trở nên dễ dàng, các nhà phát triển ứng dụng sẽ phải tạo phần mềm máy ảnh của riêng họ và giải thích các đầu vào của phần cứng máy ảnh. Nhưng các nhà phát triển hệ điều hành của Apple đã làm tất cả những công việc khó khăn này để các nhà phát triển chỉ có thể sử dụng API máy ảnh để nhúng máy ảnh và sau đó tiếp tục xây dựng ứng dụng của họ. Và, khi Apple cải thiện API máy ảnh, tất cả các ứng dụng dựa vào nó sẽ tự động tận dụng sự cải tiến đó.

Điều này áp dụng cho mọi nền tảng. Ví dụ: bạn có muốn tạo một hộp thoại trên Windows không? Có một API cho điều đó. Bạn muốn hỗ trợ xác thực vân tay trên Android? Cũng có một API cho điều đó, vì vậy bạn không cần phải kiểm tra mọi cảm biến vân tay của nhà sản xuất Android khác nhau. Các nhà phát triển không cần phải sáng tạo lại bánh xe nhiều lần.

Kiểm soát API truy cập vào tài nguyên

API cũng được sử dụng để kiểm soát quyền truy cập vào các thiết bị phần cứng và các chức năng phần mềm mà một ứng dụng có thể không nhất thiết phải có quyền sử dụng. Đó là lý do tại sao các API thường đóng một vai trò lớn trong bảo mật.

LIÊN QUAN:Cách ngăn các trang web yêu cầu vị trí của bạn

Ví dụ: nếu bạn đã từng truy cập một trang web và thấy thông báo trong trình duyệt rằng trang web yêu cầu xem vị trí chính xác của bạn, thì trang web đó đang cố gắng sử dụng API định vị địa lý trong trình duyệt web của bạn. Các trình duyệt web hiển thị các API như thế này để giúp các nhà phát triển web dễ dàng truy cập vào vị trí của bạn — họ chỉ cần hỏi "bạn đang ở đâu?" và trình duyệt thực hiện công việc khó khăn khi truy cập GPS hoặc các mạng Wi-Fi lân cận để tìm vị trí thực của bạn.

Tuy nhiên, các trình duyệt cũng hiển thị thông tin này qua API vì có thể kiểm soát quyền truy cập vào nó. Khi một trang web muốn truy cập vào vị trí thực tế chính xác của bạn, cách duy nhất họ có thể nhận được là thông qua API vị trí. Và, khi một trang web cố gắng sử dụng nó, bạn — người dùng — có thể chọn cho phép hoặc từ chối yêu cầu này. Cách duy nhất để truy cập tài nguyên phần cứng như cảm biến GPS là thông qua API, vì vậy trình duyệt có thể kiểm soát quyền truy cập vào phần cứng và giới hạn những gì ứng dụng có thể làm.

Nguyên tắc tương tự này được sử dụng trên các hệ điều hành di động hiện đại như iOS và Android, nơi các ứng dụng dành cho thiết bị di động có quyền có thể được thực thi bằng cách kiểm soát quyền truy cập vào các API. Ví dụ: nếu một nhà phát triển cố gắng truy cập máy ảnh thông qua API máy ảnh, bạn có thể từ chối yêu cầu cấp quyền và ứng dụng không có cách nào truy cập máy ảnh của thiết bị của bạn.

Các hệ thống tệp sử dụng quyền — giống như trên Windows, Mac và Linux — có các quyền đó được thực thi bởi API hệ thống tệp. Một ứng dụng điển hình không có quyền truy cập trực tiếp vào đĩa cứng vật lý thô. Thay vào đó, ứng dụng phải truy cập tệp thông qua API.

API được sử dụng để liên lạc giữa các dịch vụ

API cũng được sử dụng cho tất cả các loại lý do khác. Ví dụ: nếu bạn đã từng thấy một đối tượng Google Maps được nhúng trên một trang web, thì trang web đó đang sử dụng API Google Maps để nhúng bản đồ đó. Google để lộ các API như thế này cho các nhà phát triển web, những người này sau đó có thể sử dụng các API này để ghép các đối tượng phức tạp ngay trên trang web của họ. Nếu các API như thế này không tồn tại, các nhà phát triển có thể phải tạo bản đồ của riêng họ và cung cấp dữ liệu bản đồ của riêng họ chỉ để đưa một bản đồ tương tác nhỏ lên trang web.

Và, bởi vì nó là một API, Google có thể kiểm soát quyền truy cập vào Google Maps trên các trang web của bên thứ ba, đảm bảo họ sử dụng nó một cách nhất quán thay vì cố gắng nhúng một cách lộn xộn khung hiển thị trang web Google Maps chẳng hạn.

Điều này áp dụng cho nhiều dịch vụ trực tuyến khác nhau. Có các API để yêu cầu dịch văn bản từ Google Dịch hoặc nhúng các bình luận hoặc tweet của Facebook từ Twitter trên một trang web.

LIÊN QUAN:OAuth là gì? Cách các nút đăng nhập Facebook, Twitter và Google đó hoạt động

Tiêu chuẩn OAuth cũng xác định một số API cho phép bạn đăng nhập vào một trang web bằng dịch vụ khác — ví dụ: sử dụng tài khoản Facebook, Google hoặc Twitter của bạn để đăng nhập vào một trang web mới mà không cần tạo tài khoản người dùng mới chỉ cho trang web đó . API là các hợp đồng tiêu chuẩn xác định cách các nhà phát triển giao tiếp với một dịch vụ và loại đầu ra mà các nhà phát triển mong đợi nhận lại.

Nếu bạn đã vượt qua điều này, bạn sẽ có ý tưởng tốt hơn về API là gì. Cuối cùng, bạn không thực sự cần biết API là gì trừ khi bạn là nhà phát triển. Tuy nhiên, nếu bạn thấy một nền tảng phần mềm hoặc dịch vụ đã thêm các API mới cho các phần cứng hoặc dịch vụ khác nhau, thì các nhà phát triển sẽ dễ dàng tận dụng các tính năng đó hơn.

Tín dụng hình ảnh: patpitchaya / Shutterstock.com.