RESTful API trong Laravel

1. RESTful API là gì ?
- REST (Representational State Tranfer): là một loạt hướng dẫn và dạng cấu trúc dùng cho việc chuyển đổi dữ liệu dựa trên giao thức không trạng thái để tương tác (thường là HTTP)
- API (Application Programming Interface): phương thức kết nối với các thư viện và ứng dụng khác
2. HTTP method theo chuẩn RESTful API:
- GET: truy xuất tài nguyên (READ)
- POST : tạo tài nguyên mới (CREATE)
- PUT / PATCH: cập nhật, sửa đổi tài nguyên (UPDATE)
- DELETE : xóa tài nguyên (DELETE)
3. RESTful API trong Laravel
- Các route theo chuẩn RESTful API được viết trong file routes/api.php
- Trong Laravel ta có thể gom các route này bằng 1 câu duy nhất:
Route::resource('users', 'Admin\UserController)

- Laravel cung cấp route resource để xây dựng RESTful API
- Lệnh artisan tạo REST controller:
php artisan make: controller controller_name --resource
- Lúc này, controller vừa tạo sẽ tự động render ra các phương thức:
METHOD | Ý NGHĨA |
---|---|
index() | Hiển thị danh sách tài nguyên |
create() | Thêm mới |
store() | Lưu trữ 1 tài nguyên mới |
show($id) | Hiển thị 1 tài nguyên theo tham số truyền vào |
edit($id) | Sửa 1 tài nguyên theo tham số truyền vào |
update(Request $quest, $id) | Cập nhật 1 tài nguyên theo tham số truyền vào |
destroy($id) | Xóa 1 tài nguyên theo tham số truyền vào |
- Test route: http://127.0.0.1:8000/api/auth/users với phương thức GET


- Test route: http://127.0.0.1:8000/api/auth/users với phương thức POST


- Test route: http://127.0.0.1:8000/api/auth/users/{id} với phương thức DELETE


4. Trạng thái HTTP
- 201 Created: Tài nguyên mới đã được tạo thành công.
- 400 Bad Request: Yêu cầu không hợp lệ hoặc thiếu thông tin cần thiết.
- 401 Unauthorized: Yêu cầu cần xác thực, thông tin xác thực không hợp lệ.
- 403 Forbidden: Server đã hiểu yêu cầu, nhưng từ chối thực hiện.
- 404 Not Found: Tài nguyên được yêu cầu không tồn tại.
- 500 Internal Server Error: Lỗi từ phía máy chủ, không thể hoàn thành yêu cầu.