Làm cách nào để kiểm tra danh sách lộ trình API trong Laravel?

Bản thân Laravel đã đi kèm với các tuyến API sẵn có. Trong bài viết hôm nay, tôi sẽ trình bày một số cách sử dụng cơ bản mà không cần xác thực

Trong giai đoạn sau, chúng tôi sẽ xem xét việc bảo mật các tuyến API của mình

Mục tiêu của ngày hôm nay là gọi công khai điểm cuối sách và truy xuất tất cả sách của chúng tôi. Chúng tôi cũng muốn thêm một cuốn sách

Hiện tại, điều này sẽ không nằm sau lớp xác thực

Đăng ký các tuyến API

Trong Laravel, chúng tôi có thể đăng ký các tuyến API của mình bên trong tệp

php artisan make:controller BookController --resource --model=Book
0. Tất cả các tuyến đường ở đây sẽ có tiền tố là
php artisan make:controller BookController --resource --model=Book
1

Chúng tôi có thể thêm tất cả các tuyến đường của mình theo cách thủ công như thế này

Route::get['books', 'BookController@index'];
Route::post['books', 'BookController@store'];

Tuy nhiên, Laravel đi kèm với một kỹ thuật tiện dụng khác cho phép chúng ta tạo bộ điều khiển tài nguyên

Và phần hay nhất, chúng ta thậm chí có thể tạo ra nó

php artisan make:controller BookController --resource --model=Book

Điều này sẽ tạo một bộ điều khiển tài nguyên cho mô hình sách của chúng tôi. Bộ điều khiển tài nguyên đi kèm với các tuyến sau đây

MethodURLActionRoute nameGET
php artisan make:controller BookController --resource --model=Book
2indexbooks. chỉ mụcPOST
php artisan make:controller BookController --resource --model=Book
2cửa hàng sách. cửa hàngGET____0_______4showbooks. showPUT/PATCH
php artisan make:controller BookController --resource --model=Book
4updatebooks. cập nhậtXÓA_______0_______4hủy sách. hủy hoại

Và chúng tôi có thể đăng ký tất cả các tuyến đường này trong tệp tuyến đường API của mình bằng cách chỉ bao gồm một dòng này

Route::resource['books', BookController::class];

Trả lại dữ liệu thu thập trong bộ điều khiển API của chúng tôi

Bây giờ các điểm cuối của chúng tôi đang hoạt động, chúng tôi cần điền vào chúng để chúng thực sự trả về dữ liệu

Trước tiên hãy bắt đầu bằng cách tạo một tài nguyên. Tài nguyên là một cách tuyệt vời để nói chuyện giữa mô hình của chúng tôi và phản hồi API

php artisan make:resource BookResource

Khi đã được tạo, hãy chuyển đến

php artisan make:controller BookController --resource --model=Book
7 và thay đổi hàm chỉ mục thành như sau

public function index[]
{
    $books = Book::paginate[];
    return BookResource::collection[$books];
}

Hãy xem nó có hoạt động trong Insomnia/Postman không

Và nó hoạt động. Bây giờ chúng ta có thể điền vào phần còn lại của các hành động

Chức năng hiển thị sẽ chỉ trả về một cuốn sách

/**
 * Display the specified resource.
 *
 * @param  \App\Models\Book  $book
 * @return \Illuminate\Http\Response
 */
public function show[Book $book]
{
	return new BookResource[$book];
}

Đối với việc tạo một cuốn sách mới, chúng ta có thể sử dụng như sau

public function store[Request $request]
{
    $validated = $request->validate[[
        'title' => 'required|string|max:255',
        'year' => 'required|integer'
    ]];

    $book = Book::create[$validated];
    return new BookResource[$book];
}

Trình xác thực là một chức năng cực hay của Laravel có thể thực hiện xác thực khá rộng rãi

Hãy xem điều gì xảy ra khi chúng ta sử dụng sai yêu cầu

mát phải. Tuy nhiên, chúng tôi vẫn gặp lỗi nếu chúng tôi điền ngay bây giờ

"thông điệp". "Thêm [tiêu đề] vào thuộc tính có thể điền để cho phép gán hàng loạt trên [Ứng dụng\Mô hình\Sách]. ",

Đó là bởi vì tiêu đề và năm không thể điền vào mô hình của chúng tôi. Mở tệp mô hình Sách và thêm vào như sau

protected $fillable = ['title', 'year'];

Nếu bây giờ chúng tôi đăng lại, chúng tôi nên thêm một cuốn sách và lấy cuốn sách đó làm phản hồi của chúng tôi

Với chức năng tạo này, chúng ta có thể tạo chức năng cập nhật một cách đơn giản. Điều đó sẽ cập nhật một cuốn sách dựa trên ID của nó

public function update[Request $request, Book $book]
{
    $validated = $request->validate[[
        'title' => 'required|string|max:255',
        'year' => 'required|integer'
    ]];

    $book->update[$validated];
    return new BookResource[$book];
}

Chức năng cuối cùng chúng ta cần là chức năng xóa sách. Chúng tôi cũng có thể xóa một cuốn sách dựa trên ID của nó

public function destroy[Book $book]
{
    $book->delete[];
    return response[null, Response::HTTP_NO_CONTENT];
}

Và đó là nó. Bây giờ chúng ta có bộ điều khiển API cơ bản. Tích hợp sẵn không mất thời gian và hầu như không thực hiện bất kỳ công cụ tùy chỉnh khó khăn nào

Cảm ơn bạn đã đọc, và chúng ta hãy kết nối

Cảm ơn bạn đã đọc blog của tôi. Vui lòng đăng ký nhận bản tin email của tôi và kết nối trên Facebook hoặc Twitter

Làm cách nào để xem danh sách tuyến đường trong Laravel?

Trên mỗi phần tử, bạn có thể thực hiện một thao tác đơn giản $route->getPath[] để nhận đường dẫn của tuyến đường hiện tại. Mỗi tham số được bảo vệ có thể được nhận bằng một bộ thu tiêu chuẩn.

Xác thực ở đâu. tuyến đường trong Laravel?

Xác thực. routes[] có trong src/Illuminate/Support/Facades/Auth. php hoặc tại đây.

Làm cách nào để xác định tuyến API trong Laravel 8?

Định tuyến Api . register the API in your routes/api. tập tin php như sau. JsonApi. register['default']->routes[function [$api] { $api->resource['posts']; $api->resource['comments']; }]; .

Làm cách nào để lấy tham số tuyến đường trong Laravel?

Chúng tôi có thể truy cập các tham số tuyến đường theo hai cách. Một cách là sử dụng $request->route['parameter_name'] . , trong đó tên_tham số đề cập đến cái mà chúng ta gọi là tham số trong tuyến đường. Trong phương thức xử lý trong lớp DumpMiddleware được tạo trong ứng dụng/Http/Middleware/DumpMiddleware. tập tin php.

Chủ Đề