REST API là gì? Nếu bạn từng dùng ứng dụng thời tiết, thanh toán MoMo hay đăng nhập bằng Google, bạn đã từng giao tiếp với REST API rồi. Đây là kiểu phổ biến nhất để các ứng dụng nói chuyện với nhau qua internet, và là nền tảng của hầu hết website, app di động và dịch vụ AI hiện nay.
REST API Là Gì?
REST (Representational State Transfer) là một tập quy tắc thiết kế cách hai hệ thống giao tiếp qua HTTP. API (Application Programming Interface) là giao diện cho phép phần mềm kết nối với nhau. Ghép lại, REST API là cách chuẩn mực để ứng dụng gửi request lên server và nhận response về, tất cả qua giao thức web thông thường.
Khái niệm này do Roy Fielding đề xuất năm 2000, trong bài luận tiến sĩ của ông tại UC Irvine. Từ đó đến nay, REST trở thành tiêu chuẩn de facto cho web API, thay thế các phương pháp cũ nặng nề như SOAP.
Nghĩa đơn giản: REST API giống như bạn gọi món ở nhà hàng. Bạn (client) gửi yêu cầu “cho tôi một ly cà phê” (request), nhân viên bưng ra ly cà phê (response). Bạn không cần biết nhà hàng pha cà phê thế nào, chỉ cần biết gọi đúng món và nhận đúng thứ.
Các Thành Phần Chính Của REST API
REST API xoay quanh bốn yếu tố cốt lõi. Hiểu được bốn yếu tố này là bạn nắm được phần lớn cách REST hoạt động:
Resource (Tài nguyên): Mọi thứ đều là resource, được xác định bằng URL. Ví dụ /users là danh sách người dùng, /products/123 là sản phẩm số 123. Mỗi URL trỏ đến một resource cụ thể.
HTTP Methods (Phương thức): REST dùng đúng các phương thức HTTP có sẵn để thao tác với resource. GET để đọc, POST để tạo mới, PUT để cập nhật toàn bộ, PATCH để cập nhật một phần, DELETE để xóa. Năm phương thức này tương ứng với bốn thao tác CRUD quen thuộc (Create, Read, Update, Delete).
Representation (Biểu diễn): Khi client request một resource, server trả về representation của resource đó, thường dưới dạng JSON. JSON nhẹ, dễ đọc, và được mọi ngôn ngữ lập trình hỗ trợ. Trước đây người ta hay dùng XML nhưng JSON thắng thế hẳn.
Stateless (Không trạng thái): Mỗi request phải chứa đủ thông tin để server xử lý, server không lưu trạng thái của client giữa các request. Điều này giúp REST API dễ mở rộng (scale) vì bất kỳ server nào cũng xử lý được bất kỳ request nào.
Ví Dụ Thực Tế REST API
Giả sử bạn xây dựng ứng dụng quản lý sản phẩm. REST API của bạn sẽ trông như sau:
GET /products — Lấy danh sách tất cả sản phẩm. Server trả về mảng JSON chứa thông tin từng sản phẩm.
GET /products/42 — Lấy chi tiết sản phẩm số 42. Server trả về một object JSON với tên, giá, mô tả.
POST /products — Tạo sản phẩm mới. Client gửi JSON chứa thông tin sản phẩm trong body của request.
PUT /products/42 — Cập nhật toàn bộ thông tin sản phẩm số 42. Client gửi JSON mới, server thay thế bản cũ.
DELETE /products/42 — Xóa sản phẩm số 42. Server xóa và trả về trạng thái thành công.
Trong thực tế, khi bạn mở Shopee và cuộn danh sách sản phẩm, ứng dụng gọi GET /api/products?page=1 lên server Shopee. Khi bạn thêm vào giỏ hàng, ứng dụng gọi POST /api/cart. Tất cả đều là REST API.
6 Ràng Buộc Của REST
Để một API thực sự được gọi là RESTful, nó phải tuân thủ sáu ràng buộc mà Fielding đặt ra:
Client-Server: Client và server tách biệt rõ ràng. Client lo giao diện, server lo dữ liệu và xử lý. Hai bên chỉ giao tiếp qua request và response.
Stateless: Như đã nói ở trên, mỗi request độc lập, server không nhớ client đã gọi gì trước đó.
Cacheable: Response phải chỉ rõ có thể cache hay không. Cache giúp giảm tải server và tăng tốc độ cho client, đặc biệt với dữ liệu ít thay đổi.
Uniform Interface: Giao tiếp giữa client và server phải nhất quán. URL xác định resource, HTTP method xác định hành động, status code xác định kết quả. Đây là ràng buộc quan trọng nhất.
Layered System: Client không biết và không cần biết nó đang nói chuyện với server trực tiếp hay qua load balancer, proxy hay cache layer. Bất kỳ trung gian nào cũng có thể chèn vào mà không ảnh hưởng client.
Code on Demand (tùy chọn): Server có thể gửi code (thường là JavaScript) cho client thực thi. Ràng buộc này ít dùng và hoàn toàn tùy chọn.
REST API So Với Các Kiểu API Khác
REST vs SOAP: SOAP là chuẩn cũ, dùng XML, nặng nề và phức tạp. REST nhẹ hơn, dùng JSON, đơn giản và nhanh hơn. SOAP vẫn còn dùng trong ngân hàng và hệ thống legacy, nhưng hầu hết API mới đều chọn REST.
REST vs GraphQL: GraphQL do Facebook phát triển, cho phép client yêu cầu chính xác dữ liệu cần thiết, không thừa không thiếu. REST trả về toàn bộ resource. GraphQL linh hoạt hơn nhưng phức tạp hơn trong triển khai. Mình thấy REST vẫn phù hợp cho hầu hết trường hợp, GraphQL shine khi bạn có nhiều client khác nhau (web, mobile, IoT) cần dữ liệu khác nhau.
REST vs gRPC: gRPC dùng binary format (Protocol Buffers), nhanh hơn REST nhiều. Phù hợp cho giao tiếp giữa các microservice. Nhưng gRPC không thân thiện với browser, nên REST vẫn là lựa chọn số một cho public API.
Tại Sao REST API Quan Trọng?
REST API là xương sống của web hiện đại. Hầu hết ứng dụng bạn dùng hàng ngày đều dựa trên REST: Facebook, YouTube, Shopee, Grab. Khi frontend cần dữ liệu, nó gọi REST API. Khi app mobile cần đồng bộ, nó gọi REST API. Khi tích hợp thanh toán, bạn dùng REST API của MoMo hay VNPay.
Trong thời đại AI, REST API còn quan trọng hơn. Khi bạn dùng ChatGPT hay Claude, client gọi REST API lên server OpenAI hay Anthropic. Function Calling — khả năng AI gọi hàm thực hiện hành động — cũng hoạt động qua REST API. Mọi nền tảng AI lớn đều expose REST API cho developer.
Nếu bạn làm MMO hay kiếm tiền online, REST API mở ra cánh cửa tự động hóa. Bạn có thể tự động đăng bài lên mạng xã hội, đồng bộ sản phẩm lên nhiều sàn, lấy dữ liệu báo cáo hàng ngày — tất cả qua REST API.
HTTP Status Code Cần Biết
Khi gọi REST API, server trả về status code cho biết kết quả. Đây là những code phổ biến nhất bạn sẽ gặp:
200 OK: Request thành công. Bạn gửi GET và nhận đúng dữ liệu.
201 Created: Tạo mới thành công. Bạn gửi POST và resource đã được tạo.
400 Bad Request: Request sai format hoặc thiếu thông tin. Lỗi từ phía client.
401 Unauthorized: Chưa xác thực. Cần đăng nhập hoặc cung cấp token.
404 Not Found: Resource không tồn tại. URL sai hoặc đã bị xóa.
500 Internal Server Error: Server gặp lỗi. Không phải lỗi của bạn, server đang có vấn đề.
Cách Bắt Đầu Với REST API
Bạn không cần lập trình để trải nghiệm REST API. Mở terminal và gõ:
curl https://jsonplaceholder.typicode.com/posts/1
Lệnh này gửi GET request đến một REST API mẫu, và bạn sẽ nhận lại JSON chứa thông tin một bài viết. Đó là REST API trong hình thức đơn giản nhất.
Nếu bạn dùng WordPress, REST API đã tích hợp sẵn. Truy cập yoursite.com/wp-json/wp/v2/posts và bạn sẽ thấy danh sách bài viết dưới dạng JSON. Bạn có thể dùng API này để tạo app mobile, tích hợp với dịch vụ khác, hay tự động hóa quy trình xuất bản.
Công cụ hữu ích để thử nghiệm REST API: Postman (giao diện đồ họa), curl (command line), hay đơn giản là tab Network trong Chrome DevTools để xem mọi request website gửi đi.
REST API Có Liên Quan Gì Đến SEO?
Có, và nhiều hơn bạn nghĩ. Googlebot ngày nay render JavaScript, nghĩa là nó thực thi JavaScript và gọi REST API giống như trình duyệt. Nếu REST API của bạn chậm hoặc trả về lỗi, Google không lấy được nội dung, và trang sẽ không được index đúng.
WordPress REST API (/wp-json/) cần được bảo mật properly. Nếu không cấu hình đúng, ai cũng có thể dùng API để lấy danh sách người dùng, bài viết nháp, hay thậm chí thử brute force. Nên giới hạn truy cập API không cần thiết qua authentication hoặc tắt endpoints không dùng.
Thuật Ngữ Liên Quan
REST API liên quan chặt chẽ đến API (Application Programming Interface) — REST chỉ là một phong cách thiết kế API. Để hiểu rõ hơn cách API hoạt động trong web, bạn nên tìm hiểu thêm về Frontend vs Backend. Nếu bạn quan tâm đến tự động hóa, JavaScript là ngôn ngữ thường dùng để gọi REST API từ trình duyệt.
Tóm Lại
REST API là cách chuẩn mực nhất để các ứng dụng giao tiếp qua internet. Nó dùng HTTP methods quen thuộc (GET, POST, PUT, DELETE), trả về JSON dễ đọc, và tuân thủ nguyên tắc stateless giúp dễ mở rộng. Dù bạn là developer, marketer muốn tự động hóa, hay chỉ đơn giản muốn hiểu cách web hoạt động, REST API là kiến thức nền tảng đáng đầu tư thời gian học hỏi.