Laravel 11 REST API CRUD最佳实践 - Medium

作者:API传播员 · 2025-11-10 · 阅读时间:4分钟

使用最佳实践在 Laravel 11 中创建 RESTful API CRUD 应用程序涉及多个步骤,包括设置 Laravel 应用程序、定义路由、验证、模型、资源、创建控制器、实现存储库设计模式以及使用模型。以下是实现这一目标的分步指南:


第一步:设置 Laravel 项目

首先,通过 Composer 创建一个新的 Laravel 项目:

composer create-project --prefer-dist laravel/laravel rest-api-crud

第二步:配置 MySQL 数据库

Laravel 11 默认使用 sqlite 作为数据库连接类型。要切换到 MySQL,请在 .env 文件中将 DB_CONNECTION 修改为 mysql

DB_CONNECTION=mysql

第三步:使用迁移创建产品模型

运行以下命令,为产品模型创建迁移文件、工厂、控制器等:

php artisan make:model Product -a

第四步:更新迁移文件

打开生成的迁移文件 database/migrations/YYYY_MM_DD_HHMMSS_create_products_table.php,在 up 方法中定义表结构:

public function up(): void
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('details');
        $table->timestamps();
    });
}

然后运行迁移命令:

php artisan migrate

第五步:创建产品存储库接口

为产品模型创建存储库接口,以实现代码的模块化和可维护性:

php artisan make:interface Interfaces/ProductRepositoryInterface

app/Interfaces 目录下创建 ProductRepositoryInterface.php 文件,并添加以下代码:

<?php

namespace AppInterfaces;

interface ProductRepositoryInterface
{
    public function index();
    public function getById($id);
    public function store(array $data);
    public function update(array $data, $id);
    public function delete($id);
}

第六步:创建产品存储库类

为产品模型创建存储库类:

php artisan make:class Repositories/ProductRepository

app/Repositories 目录下创建 ProductRepository.php 文件,并实现接口中的方法。


第七步:绑定接口与实现

ProductRepository 绑定到 ProductRepositoryInterface,以便依赖注入。使用以下命令创建服务提供者:

php artisan make:provider RepositoryServiceProvider

打开 app/Providers/RepositoryServiceProvider.php 文件,在 register 方法中添加以下代码:

public function register()
{
    $this->app->bind(
        AppInterfacesProductRepositoryInterface::class,
        AppRepositoriesProductRepository::class
    );
}

第八步:请求验证

创建两个请求类 StoreProductRequestUpdateProductRequest,用于验证传入的数据。可以使用以下命令生成:

php artisan make:request StoreProductRequest
php artisan make:request UpdateProductRequest

在生成的请求类中定义验证规则。


第九步:创建通用 ApiResponse 类

为了统一 API 响应格式,可以创建一个通用的 ApiResponse 类:

php artisan make:class Classes/ApiResponseClass

app/Classes 目录下创建 ApiResponseClass.php 文件,并定义通用响应方法。


第十步:创建产品资源

使用以下命令创建资源类:

php artisan make:resource ProductResource

在资源类中定义数据格式化逻辑,以便统一返回的 JSON 数据结构。


第十一步:创建产品控制器

在控制器中使用存储库实现 CRUD 操作。打开 app/Http/Controllers/ProductController.php 文件,添加以下代码以实现控制器逻辑。


第十二步:定义 API 路由

运行以下命令发布 API 路由文件:

php artisan install:api

然后在 routes/api.php 文件中定义路由,将控制器方法映射到相应的路由。例如:

Route::apiResource('products', ProductController::class);

总结

通过以上步骤,您可以在 Laravel 11 中构建一个功能完善的 RESTful API CRUD 应用程序。该过程涵盖了从项目设置到路由定义的完整流程,同时引入了存储库设计模式和通用响应类等最佳实践,以提高代码的可维护性和扩展性。

完成所有步骤后,运行以下命令启动开发服务器并测试 API:

php artisan serve

希望这篇指南对您有所帮助!

原文链接: https://medium.com/@1415sandalanka/laravel-11-rest-api-crud-with-best-practices-fcc26505e0d2