kaydomrose/ laravel-api-action
该包简化了为您的laravel应用程序创建api(json)端点。
dev-master
2021-08-02 19:29 UTC
Requires
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
This package is not auto-updated.
Last update: 2024-09-25 09:04:34 UTC
README
该包通过将路由、授权、验证和控制器逻辑简化为单个类,简化了为您的laravel应用程序创建api(json)端点。
class UserReadAction extends ActionController { public function method(): string { return 'GET'; } public function uri(): string { return '/users/{user}'; } public function allow(Request $request): bool { return true; } public function rules(Request $request): array { return []; } public function handle(User $user): User { return $user; } }
此操作将执行以下操作:
- 为
/users/{user}
注册一个GET路由 - 授权请求
- 验证请求
- 处理逻辑
安装
通过Composer
$ composer require kaydomrose/laravel-api-action
用法
首先,通过Artisan命令创建一个操作。
$ php artisan make:action MyAction
这将创建一个新的类app/Http/Actions/MyAction.php
。
接下来,在您的routes/api.php
中注册您的操作
LaravelApiAction::routes([ MyAction::class, ]);
完成!
文档
路由(必需)
public function method(): string { return 'GET'; } public function uri(): string { return '/users/{user}'; }
指定操作的HTTP动词和URI。
有关可用动词的更多信息,请参阅https://laravel.net.cn/docs/master/routing#available-router-methods。
上面的示例将转换为:
Route::get('/users/{user}', /* ... */);
授权(必需)
public function allow(Request $request): bool { return true; }
检查当前请求是否已授权。
与表单请求授权类似。
验证(必需)
public function rules(Request $request): array { return []; }
指定请求验证的规则,如表单构建器验证中所示。
处理(必需)
public function handle() { /* Your logic */ }
这是放置操作逻辑的位置,就像您通常在控制器中做的那样。
还支持依赖注入和路由模型绑定。
您的返回值将被response()->json()
包装,所以不要自己包装它。
只返回原始数据。
自定义http状态(可选)
public function responseStatusCode(): int { return 200; }
自定义响应状态码。
默认为200
。
自定义验证消息(可选)
public function validationMessages(): array { return []; }
自定义验证错误消息。
默认为[]
。
变更日志
有关最近更改的更多信息,请参阅变更日志。
测试
$ composer test