klisica/api-formula

基于 artisan 命令的 Laravel API 架构构建工具。

v1.0.2 2022-01-29 14:49 UTC

This package is auto-updated.

Last update: 2024-09-29 06:03:13 UTC


README

基于 artisan 命令的 Laravel API 架构构建工具。

此包提供了一种优雅且流畅的方式生成组合的 控制器模型迁移请求资源仓库服务,从而保持代码结构良好且井然有序。


安装

使用 composer 安装此包,执行设置命令并将 RepositoryServiceProvider.php 文件注册到 config > app.php 下的 providers 数组中。

composer require klisica/api-formula
php artisan api-formula:setup
'providers' => [
    ...
    App\Providers\RepositoryServiceProvider::class,
    ...
 ],

接下来,在 routes > api.php 中添加 // @API_FORMULA_AUTOIMPORT 注释以启用资源路由的自动导入。例如,我喜欢在中间件组中绑定导入

...
Route::midleware('auth:sanctum')->group(function () {
    Route::resource('job_posts', 'JobPostController')->parameters(['' => 'job_post']);
    ...
    // @API_FORMULA_AUTOIMPORT
});

要发布配置文件,请运行

php artisan vendor:publish --provider="KLisica\ApiFormula\Providers\ApiFormulaServiceProvider"

使用方法

⭐ 要启动 API 构建器,请运行以下命令

php artisan api-make:formula

要手动创建特定文件,可以使用以下命令之一

php artisan api-make:model ModelName
php artisan api-make:migration create_example_table
php artisan api-make:repository RepositoryName --model=ModelName
php artisan api-make:service ServiceName
php artisan api-make:request RequestName
php artisan api-make:controller ControllerName --model=ModelName

与此包一起使用的其他外部包


在模型上过滤和排序

每个模型都使用自定义的 Filterable 特性,该特性处理模型上的简单基于查询的过滤和排序功能。

  • 过滤器接受格式为 column[operator]=value
  • 要过滤 关系,格式为 relationName|column[operator]=value(注意两者之间的 | 分隔符)。
  • 默认情况下,自由文本过滤器为 _text 查询参数。

JSON 示例

{
    page: 1,
    per_page: 10,
    sort_by: ['created_at', 'desc'],
    'name[equal]': 'Name example',
    'relation|name[equal]': 'Relation name example',
    '_text': 'Search for something'
74

}

原始 URL 查询示例

http://api-formula.test/api/job_posts?per_page=10&page=1&sort_by[0]=created_at&sort_by[1]=desc&name[equal]=Name example&relation|name[equal]=Relation name example