API là gì?
Bạn có thể đã thấy thuật ngữ API API xuất hiện. Hệ điều hành, trình duyệt web và cập nhật ứng dụng thường thông báo API mới cho 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à 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 menu trong một nhà hàng. Menu cung cấp một danh sách các món ăn bạn có thể đặt, cùng với một mô tả của từng món ăn. Khi bạn chỉ định những mục menu nào bạn muố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 nhà hàng chế biến món ăn đó như thế nào và bạn không thực sự cần phải.
Tương 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 mô tả về những gì họ làm. Nhà phát triển không nhất thiết phải biết làm thế nào, ví dụ, một hệ điều hành sẽ xây dựng và trình bày một hộp thoại Save Save As. 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 để có kết quả, vì vậy có lẽ nó giống như một nhà hàng ưa thích nơi bạn có thể cung cấp một số nguyên liệu của riêng mình mà nhà bếp sẽ làm việc với.
Nhưng nó chính xác một cách 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 nền tảng để thực hiện công việc khó khăn. Đ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 sự thống nhất hơn trên 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 các 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 API - như mọi hệ điều hành khác làm - để giúp bạn làm đ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ỉ 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) trong ứng dụng của bạn.
Nếu bạn muốn chụp ảnh hoặc quay video từ camera của iPhone, bạn không 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 bạn. Nếu các API không tồn tại để làm cho điều 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 đã thực hiện tất cả công việc khó khăn này để các nhà phát triển chỉ có thể sử dụng API camera để nhúng camera, sau đó tiếp tục xây dựng ứng dụng của họ. Và, khi Apple cải thiện API camera, 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 dấu vân tay trên Android? Cũng có một API cho điều đó, vì vậy bạn không phải kiểm tra cảm biến vân tay của mọi nhà sản xuất Android khác nhau. Các nhà phát triển không phải phát minh lại bánh xe nhiều lần.
API kiểm soát quyền 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à chức năng phần mềm mà ứ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 một thông báo trong trình duyệt của bạn rằng trang web đang 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ị trí của bạn - họ có thể hỏi rằng bạn đang ở đâu? Bạn và trình duyệt làm việc chăm chỉ truy cập GPS hoặc các mạng Wi-Fi gầ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 thông 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ể có đượ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 di động có quyền có thể được thi hành bằng cách kiểm soát quyền truy cập vào API. Ví dụ: nếu nhà phát triển cố gắng truy cập máy ảnh qua API camera, bạn có thể từ chối yêu cầu cấp phép và ứng dụng không có cách nào truy cập vào camera của thiết bị của bạn.
Các hệ thống tệp sử dụng các quyền - như chúng làm trên Windows, Mac và Linux - có các quyền đó được thi hành bởi API hệ thống tệp. Một ứng dụng thông thường 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 các 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 trưng bày các API như thế này cho các nhà phát triển web, những người sau đó có thể sử dụng các API để tạo ra 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ỉ để đặt một bản đồ tương tác nhỏ trên một trang web.
Và, vì là 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 khung hiển thị trang web Google Maps, ví dụ như.
Đ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 nhận xét hoặc tweet của Facebook từ Twitter trên một trang web.
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 một 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 sẽ mong 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. Nhưng, nếu bạn thấy một nền tảng hoặc dịch vụ phần mềm đã thêm API mới cho các phần cứng hoặc dịch vụ khác nhau, các nhà phát triển sẽ dễ dàng tận dụng các tính năng như vậy.
Tín dụng hình ảnh: patpitchaya / Shutterstock.com.