Giới thiệu về Web APIs trong JavaScript
Javascript nâng cao | by
Trong thời đại phát triển mạnh mẽ của các ứng dụng web hiện nay, JavaScript đóng vai trò trung tâm trong việc tạo ra những trải nghiệm tương tác mượt mà và linh hoạt cho người dùng. Tuy nhiên, sức mạnh thực sự của JavaScript không chỉ nằm ở cú pháp hay ngôn ngữ, mà còn ở khả năng kết hợp chặt chẽ với các Web APIs – những giao diện lập trình mạnh mẽ được chính trình duyệt cung cấp.
Thông qua Web APIs, JavaScript có thể dễ dàng truy cập và thao tác với các thành phần hệ thống như vị trí địa lý, bộ nhớ trình duyệt, clipboard, camera, âm thanh, giao tiếp mạng, và nhiều hơn thế nữa. Điều này mở ra khả năng xây dựng các ứng dụng web ngày càng thông minh, giàu tính năng và thân thiện với người dùng.
Trong bài viết này, mình sẽ cùng nhau tìm hiểu khái niệm Web API là gì, tìm hiểu các nhóm API phổ biến, cách sử dụng và ứng dụng thực tế của chúng trong quá trình phát triển web.
Web APIs là gì?
Web APIs (viết tắt của Web Application Programming Interfaces) là tập hợp các giao diện lập trình do trình duyệt web cung cấp, cho phép các lập trình viên sử dụng JavaScript để tương tác với các thành phần bên trong trình duyệt, như HTML, CSS, bộ nhớ cục bộ, thiết bị phần cứng (camera, micro), dịch vụ web và nhiều tính năng khác.
Nói cách khác, Web APIs đóng vai trò như “cầu nối” giữa mã JavaScript của bạn và các tính năng mà trình duyệt (hoặc hệ điều hành) hỗ trợ. Thông qua các API này, bạn có thể viết mã JavaScript để:
-
Thay đổi nội dung trên trang web theo thời gian thực.
-
Lưu trữ dữ liệu tạm thời hoặc lâu dài trên trình duyệt.
-
Gửi và nhận dữ liệu từ máy chủ mà không cần tải lại trang.
-
Truy cập vị trí địa lý của người dùng.
-
Tương tác với clipboard, cảm biến thiết bị, hoặc thậm chí gửi thông báo đẩy (push notification)...
Ví dụ:
navigator.geolocation.getCurrentPosition(function(position) { console.log(position.coords.latitude, position.coords.longitude); });
Đoạn mã trên sử dụng Web API Geolocation
để lấy vị trí hiện tại của người dùng – một tính năng không có sẵn trong JavaScript thuần.
Phân biệt với APIs trong các ngôn ngữ lập trình khác
Để tránh nhầm lẫn, bạn cần phân biệt Web APIs với các API trong ngôn ngữ lập trình truyền thống như C, Java, Python… Trong các ngôn ngữ đó, API thường là thư viện hoặc bộ hàm được viết bởi bên thứ ba hoặc hệ điều hành.
Trong khi đó:
-
Web APIs không phải là một phần của "core JavaScript" – tức là không được định nghĩa bởi tiêu chuẩn ECMAScript.
-
Thay vào đó, chúng là tập hợp các hàm, đối tượng và phương thức do chính trình duyệt như Chrome, Firefox, Safari... cung cấp, và chỉ hoạt động trong môi trường trình duyệt.
Ví dụ:
-
fetch()
,localStorage
,document.querySelector()
là Web API – bạn không thể sử dụng chúng trong Node.js nếu không có mô phỏng (mock). -
Các hàm như
Array.map()
,Math.random()
,JSON.stringify()
là core JavaScript – được hỗ trợ trong mọi môi trường thực thi JavaScript.
Web APIs là phần mở rộng giúp JavaScript trở nên cực kỳ mạnh mẽ khi chạy trên trình duyệt, cho phép xây dựng các ứng dụng web phong phú, tương tác cao.
Phân loại các Web APIs phổ biến trong JavaScript
Các Web APIs được chia thành nhiều nhóm khác nhau, tùy vào chức năng mà chúng cung cấp. Dưới đây là các nhóm Web APIs thường được sử dụng trong quá trình phát triển web hiện đại:
APIs tương tác với DOM (Document Object Model)
Đây là nhóm API được sử dụng để truy cập và thao tác với các phần tử HTML trên trang web.
Ví dụ API:
-
document.getElementById(id)
– chọn phần tử theoid
. -
document.querySelector(selector)
– chọn phần tử theo CSS selector. -
element.addEventListener(event, callback)
– gắn sự kiện cho phần tử.
Ứng dụng:
-
Thay đổi nội dung, màu sắc, hoặc thuộc tính của phần tử.
-
Tạo hiệu ứng động khi người dùng tương tác.
-
Bắt sự kiện nhấn nút, nhập dữ liệu, cuộn trang...
const btn = document.getElementById("myBtn"); btn.addEventListener("click", () => { alert("Bạn vừa nhấn nút!"); });
APIs tương tác với người dùng
Nhóm API này cho phép trình duyệt giao tiếp trực tiếp với người dùng, như hiển thị hộp thoại, lấy vị trí, hoặc truy cập clipboard.
Alert/Confirm/Prompt API
-
alert("Thông báo")
,confirm("Bạn chắc chứ?")
,prompt("Nhập tên của bạn")
.
Geolocation API
-
Lấy vị trí hiện tại của người dùng (nếu được cấp quyền).
Clipboard API
-
Cho phép sao chép và dán văn bản từ clipboard.
navigator.geolocation.getCurrentPosition((position) => { console.log("Vị trí:", position.coords.latitude, position.coords.longitude); });
APIs tương tác với thời gian và đồng hồ
Các API này giúp bạn lập lịch thực thi mã hoặc làm việc với thời gian.
-
setTimeout(fn, delay)
– thực thi một lần saudelay
ms. -
setInterval(fn, delay)
– thực thi lặp lại mỗidelay
ms. -
Date
– lấy ngày giờ hiện tại.
setTimeout(() => { console.log("3 giây đã trôi qua"); }, 3000);