Representational State Transfer ( ​​REST​​ ) 是一种用于构建 Web 服务的流行软件架构样式。REST API 允许客户端通过向特定端点或“路由”发出 HTTP 请求来从服务器检索和操作数据。在本教程中,我们将学习如何使用 PHP 和 Laravel 框架构建 REST API。

​Laravel​​是一种流行的开源 PHP 框架,它提供了一组工具和功能来快速高效地构建 Web 应用程序。它包括一个内置的 HTTP 路由系统、一个数据库查询生成器和一个强大的任务调度程序等。

要开始,您需要在您的机器上安装 PHP 和 Composer。如果您还没有它们,您可以从官方 PHP 和 Composer 网站下载它们。

接下来,我们将使用 Laravel 安装程序创建一个新的 Laravel 项目。打开终端并输入以下命令:

composer create-project --prefer-dist laravel/laravel my-project

这将在当前目录中创建一个名为“my-project”的新 Laravel 项目。安装完成后,导航到项目目录并通过运行以下命令启动开发服务器:

php artisan serve

您现在应该能够通过​​http://localhost:8000​​访问您的 Laravel 项目。

现在我们已经设置了一个 Laravel 项目,我们可以开始构建我们的 REST API。我们需要做的第一件事是为我们的数据创建模型和迁移。在此示例中,我们将为“任务”创建一个模型,它将表示用户需要完成的任务列表。

要创建模型和迁移,请运行以下命令:

php artisan make:model Task -m

这将在“database/migrations”目录中创建一个名为“Task”的新模型和一个相应的迁移文件。打开迁移文件并修改“up”方法以创建包含以下列的“tasks”表:

public function up()
{
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('description');
$table->boolean('completed')->default(false);
$table->timestamps();
});
}

接下来,运行以下命令在数据库中创建“tasks”表:

php artisan migrate

通过模型和迁移设置,我们现在可以为我们的 REST API 创建路由。在 Laravel 中,路由定义在“routes/api.php”文件中。打开此文件并添加以下路由:

Route::get('tasks', 'TaskController@index');
Route::get('tasks/{task}', 'TaskController@show');
Route::post('tasks', 'TaskController@store');
Route::put('tasks/{task}', 'TaskController@update');
Route::delete('tasks/{task}', 'TaskController@destroy');

这些路由对应于以下 HTTP 方法和端点:

  • GET /tasks:检索所有任务的列表
  • GET /tasks/{task}:通过 ID 检索特定任务

现在创建 TaskController 来处理我们定义的每个路由的逻辑。运行以下命令生成控制器:

php artisan make:controller TaskController

这将在“app/Http/Controllers”目录中创建一个名为“TaskController”的新控制器。打开控制器并添加以下方法:

public function index()
{
return Task::all();
}

public function show(Task $task)
{
return $task;
}

public function store(Request $request)
{
$task = Task::create($request->all());

return response()->json($task, 201);
}

public function update(Request $request, Task $task)
{
$task->update($request->all());

return response()->json($task, 200);
}

public function destroy(Task $task)
{
$task->delete();

return response()->json(null, 204);
}

这些方法对应于我们之前定义的路由。index 方法返回所有任务的列表,show 方法按 ID 返回特定任务,store 方法创建新任务,update 方法更新现有任务,destroy 方法删除任务。

有了路由和控制器,我们的 REST API 就完成了。您可以使用 Postman 等工具向端点发出 HTTP 请求来对其进行测试。

就是这样!您现在已经学习了如何使用 PHP 和 Laravel 构建 REST API。您可以根据需要通过添加更多路由和功能来继续扩展此 API。我希望本教程对您有所帮助,并且您现在对如何使用 Laravel 构建 REST API 有了很好的理解。