📜  laravel api 路由 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:34.567000             🧑  作者: Mango

Laravel API 路由

Laravel 是一个极其强大的 PHP 框架,具备快速构建 Web 应用程序所需的所有工具和库。其中之一就是 API 路由,使得你可以轻松地建立 RESTful API 服务,在不同的前端应用程序上使用。

基础使用

Laravel 的 API 路由定义和普通路由定义并没有太大的不同。你可以使用 Route facade 来定义你的 API 路由:

Route::get('api/users', function () {
    return 'Hello World';
});

上面的代码片段定义了一个 GET 请求的路由,当请求 URL 为 http://localhost/api/users 时,会返回字符串 'Hello World'。很简单吧。

参数绑定

API 请求通常需要传递一些参数,例如查询字符串参数或者路由参数等。 Laravel 路由支持多种类型参数的绑定,例如 stringintfloatboolean 等等。

查询字符串参数

你可以使用 request() 函数或 Illuminate\Http\Request 对象来获取 URL 的查询字符串参数。

Route::get('api/users', function () {
    $name = request()->query('name');
    return "Hello $name";
});

当请求 URL 为 http://localhost/api/users?name=John 时,响应是 'Hello John'

路由参数

除了查询字符串参数,你还可以从 URL 路径中获取参数。在路由中使用“花括号”表示法来定义路由参数:

Route::get('api/users/{id}', function ($id) {
    return "User ID: $id";
});

当请求 URL 为 http://localhost/api/users/1 时,响应是 'User ID: 1'

你还可以在路由参数中使用正则表达式来过滤参数值。

Route::get('api/users/{id}', function ($id) {
    // id 只能为数字
})->where('id', '[0-9]+');
路由命名

在应用程序中可能有许多不同的路由,当应用变得越来越大时,可能会变得难以维护。为此,你可以为每个路由指定路由名称,并通过名称引用路由。

Route::get('api/users/{id}', function ($id) {
    // ...
})->name('api.users.show');

现在你可以使用全局 route() 函数来生成指向具体路由的 URL:

$url = route('api.users.show', ['id' => 1]);
中间件

如其名,中间件可以在路由调用之前和之后执行一些逻辑代码。 Laravel 自带了一些常用的中间件,例如身份验证中间件和角色授权中间件。

你可以在路由定义中使用 middleware() 函数来指定中间件:

Route::get('api/users/{id}', function ($id) {
    // ...
})->middleware('auth');

现在,这个路由需要身份验证之后才能访问。

结语

以上是 Laravel API 路由的一些基本用例,当然, Laravel 的路由功能还有很多强大的特性。阅读更多文档,学习更多使用方法吧!