Hướng dẫn dùng response 404 trong PHP

Một tính năng hữu dụng được đề xuất trong Laravel 5.5 mà ít ai để ý đó là fallback routing [nôm na là định tuyến dự phòng]. Bạn có thể tím hiểu về fallback routing tại bài viết Better 404 responses using Laravel +5.5 của tác giả Mohamed Said để hiểu về nó một cách tổng quát nhất cũng như những tiện ích thiết thực mà nó mang lại.

Khi bạn tạo ra một API, bạn có thể muốn một route 404 đáp ứng với JSON [hoặc bất kỳ định dạng nào bạn muốn route trả về] thay vì phản hồi JSON 404 mặc định.

Đây sẽ là nội dung của Json bạn nhận được nếu route của bạn không định nghĩa trước:

curl \
-H"Content-Type:application/json" \
-H"Accept: application/json" \
-i //apidemo.test/not/found

HTTP/1.1 404 Not Found
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: no-cache, private
Date: Thu, 16 Aug 2018 06:00:42 GMT

{
    "message": ""
}

Như bạn thấy đó, chúng ta nhận về một message rỗng, và trông nó thật thừa thãi phải không nào. Và giờ chúng ta cùng xem xét một số tình huống qua đó bạn có thể đảm bảo rằng API của bạn sẽ phản hồi lại một fallback 404 cùng với message cụ thể khi mà route gọi đến API không khớp nhé.

Thiết lập

Sử dụng laravel CLI, bạn sẽ tạo ra một project mới, qua đó tạo một response 404 cho API của bạn:

laravel new apidemo
cd apidemo/

# Valet users...
valet link

Chúng ta cùng cấu hình một database MySQL cho project nhé:

mysql -u root -e'create database apidemo'

Cập nhật một số thông tin trong file .env nào:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=apidemo
DB_USERNAME=root
DB_PASSWORD=

Chúng ta thao tác với bảng người dùng để làm một số ví dụ. Giờ chúng ta tạo seeder cho bảng user nhé:

Bài Viết Liên Quan

Chủ Đề