Laravel 11 REST API CRUD最佳实践 - Medium
文章目录
使用最佳实践在 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
);
}
第八步:请求验证
创建两个请求类 StoreProductRequest 和 UpdateProductRequest,用于验证传入的数据。可以使用以下命令生成:
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](https://www.explinks.com/wiki/api/).php 文件中定义路由,将控制器方法映射到相应的路由。例如:
Route::apiResource('products', ProductController::class);
总结
通过以上步骤,您可以在 Laravel 11 中构建一个功能完善的 代码的可维护性和扩展性。
完成所有步骤后,运行以下命令启动开发服务器并测试 API:
php artisan serve
希望这篇指南对您有所帮助!
原文链接: https://medium.com/@1415sandalanka/laravel-11-rest-api-crud-with-best-practices-fcc26505e0d2
最新文章
- 增强API安全性:使用OPA和Kong Gateway进行细粒度访问控制
- 如何免费调用有道翻译API实现多语言翻译
- 公司logo获取服务:如何让企业自动化生成Logo变得轻松简单?
- 了解和使用REST API
- 为什么API开发对现代应用至关重要?
- 如何利用Apache APISIX实现高效的API认证与鉴权:全面解析主流认证方式
- 医疗保健领域中api解决方案的优势与劣势
- 如何获取腾讯AI开放平台 API Key 密钥(分步指南)
- 如何使用Flask-RESTX构建和文档化RESTful API
- API类型:详解与图示 – Kodezi博客
- 百度文心一言API使用指南:非技术人员入门教程
- 如何获取腾讯AI开放平台 API Key 密钥(分步指南)