jamosaur / foundation
此包最新版本(0.5)没有提供许可证信息。
Laravel API 的基础框架
0.5
2024-04-29 14:29 UTC
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/http: ^8.0|^9.0|^10.0|^11.0
- illuminate/routing: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- spatie/laravel-fractal: ^6.0
README
这是什么?
这是我用来构建 Laravel API 的基础框架。
它实际上是 spatie 的 laravel-fractal 的包装。
安装
composer require jamosaur/foundation- 更新你的 API 控制器以扩展
Jamosaur\Foundation\ApiController。这扩展了默认的 Laravel 控制器,并添加了我们将使用的方法。 - 更新你的 API 中间件在
app\Http\Kernel.php中,使用Jamosaur\Foundation\Middleware\ApiRequestMiddleware
示例用法
控制器
<?php declare(strict_types=1); namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\JsonResponse; use Jamosaur\Foundation\ApiController; class UserController extends ApiController { public function index(): JsonResponse { $users = User::all(); // By default this will try to find a transformer in `App\Transformers` called // `UserTransformer`. It guesses the name of the transformer based on the controller // name. return $this->transformCollection('users', $users) ->respond(); } public function definedTransformer(): JsonResponse { $users = User::all(); // You can override the transformer to use like this. return $this->setTransformer(new CustomTransformer()) ->transformCollection('users', $users) ->respond(); } }
重要提示
- 转换器 必须 实现
Jamosaur\Foundation\Contracts\TransformerContract并扩展League\Fractal\TransformerAbstract