Ngày nay, tầm quan trọng của API trong các ứng dụng là điều không thể bàn cãi. Mà RESTful chính là những chuẩn mực chung và đối với API
RESTful API là gì?
RESTful API là một chuẩn thiết kế API được sử dụng trong các ứng dụng web để dễ dàng quản lý các tài nguyên. Tiêu chuẩn này tập trung vào việc quản lý các tài nguyên hệ thống như tệp văn bản, hình ảnh, âm thanh, video hoặc dữ liệu động, được định dạng và truyền tải qua giao thức HTTP.
Các thành phần của RESTful API
API (Application Programming Interface) là một tập hợp các quy tắc và cơ chế cho phép một ứng dụng hoặc thành phần giao tiếp với một ứng dụng hoặc thành phần khác. API có thể trả về dữ liệu dưới các định dạng phổ biến như JSON hoặc XML.
REST (REpresentational State Transfer) là một phong cách kiến trúc để thiết kế API, sử dụng các phương thức HTTP đơn giản để giao tiếp giữa các máy. Thay vì sử dụng một URL để xử lý thông tin người dùng, REST gửi yêu cầu HTTP như GET, POST, DELETE, v.v. đến một URL để xử lý dữ liệu.
RESTful API là tiêu chuẩn thiết kế API phổ biến cho các ứng dụng web, cho phép các ứng dụng khác nhau (web, mobile…) giao tiếp với nhau. Nó quy định cách sử dụng các phương thức HTTP (như GET, POST, PUT, DELETE) và cách định dạng URL để quản lý tài nguyên. RESTful API không bị giới hạn bởi ngôn ngữ lập trình, cho phép sử dụng bất kỳ ngôn ngữ hoặc framework nào để thiết kế API.
Cách thức hoạt động của RESTful API
RESTful API chủ yếu hoạt động dựa trên giao thức HTTP. Các hoạt động cơ bản sẽ sử dụng các phương thức HTTP riêng biệt:
- GET (SELECT): Trả về một tài nguyên hoặc danh sách các tài nguyên.
- POST (CREATE): Tạo mới một tài nguyên.
- PUT (UPDATE): Cập nhật thông tin cho một tài nguyên.
- DELETE (DELETE): Xóa một tài nguyên.
Những phương thức này thường được gọi là CRUD, tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa. Hiện tại, đa số lập trình viên viết RESTful API đều chọn JSON làm định dạng chính thức, mặc dù XML cũng được sử dụng.
Authentication và cấu trúc dữ liệu trả về
RESTful API không sử dụng session và cookie, thay vào đó sử dụng access_token cho mỗi request. Để biết thêm về điều này, bạn có thể tìm hiểu về JWT (JSON Web Token).
Status Code
Khi thực hiện request đến một API, thường sẽ nhận được các status code như sau:
- 200 OK – Thành công với các phương thức GET, PUT, PATCH hoặc DELETE.
- 201 Created – Tạo mới một tài nguyên thành công.
- 204 No Content – Xóa tài nguyên thành công.
- 304 Not Modified – Dữ liệu cache có thể được sử dụng.
- 400 Bad Request – Request không hợp lệ.
- 401 Unauthorized – Cần xác thực.
- 403 Forbidden – Không được phép truy cập.
- 404 Not Found – Không tìm thấy tài nguyên.
- 405 Method Not Allowed – Phương thức không được phép.
- 410 Gone – Tài nguyên không còn tồn tại.
- 415 Unsupported Media Type – Không hỗ trợ loại tài nguyên này.
- 422 Unprocessable Entity – Dữ liệu không được xác thực.
- 429 Too Many Requests – Quá nhiều request trong một khoảng thời gian.
Quản lý phiên bản của API
Khi thiết kế API cho các ứng dụng iOS hoặc phía client, nên đặt phiên bản cho các API.
Ví dụ: endpoint api/v1/users
.
Điều này giúp hệ thống sau khi nâng cấp vẫn hỗ trợ các API của phiên bản cũ, cũng như giúp việc bảo trì và sửa chữa dễ dàng hơn.
Ưu – nhược điểm của RESTful API
Sử dụng RESTful API mang lại nhiều lợi ích cho các lập trình viên:
- Đơn giản và Dễ Hiểu
- Tính linh hoạt cao
- Dễ dàng mở rộng
- Giảm tải cho server
Tuy nhiên, RESTful API cũng có 1 số nhược điểm nhất đinh:
- Hiệu suất thấp
- Thiếu chuẩn hóa chặt chẽ
- Quản lý trạng thái phức tạp
- Giới hạn của HTTP
- Khó khăn trong việc versioning
Tham khảo: https://en.wikipedia.org/wiki/Overview_of_RESTful_API_Description_Languages