📅  最后修改于: 2023-12-03 15:02:34.567000             🧑  作者: Mango
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 路由支持多种类型参数的绑定,例如 string
、int
、float
、boolean
等等。
你可以使用 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 的路由功能还有很多强大的特性。阅读更多文档,学习更多使用方法吧!