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ì và các nhà phát triển sử dụng chúng như thế nào?
Giao diện lập trình ứng dụng là gì
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 những 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 thiết.
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 một 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 nó chính xác rộng rãi. 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 việc 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 sự 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 công việc của nhà phát triển ứng dụng trở nên dễ dàng hơ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ừ camera của iPhone, bạn không cần phải viết giao diện camera của riêng mình. Bạn sử dụng API camera để nhúng camera tích hợp 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 trên 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.
Quyền truy cập kiểm soát API 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.
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 một 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.
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 để 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à, vì 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ó theo 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.
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.