yuloh / illuminate-json-guard
此包已废弃,不再维护。未建议替代包。
Laravel/Lumen对league/json-guard的集成
dev-master
2017-01-04 20:25 UTC
Requires
- php: >=7.0
- illuminate/console: 5.3.*
- illuminate/support: 5.3.*
- league/json-guard: ^0.5.1
- yuloh/json-guard-cli: ^0.2.1
Requires (Dev)
- laravel/lumen-framework: ^5.3
- neomerx/json-api: ^0.8.10
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: ~2.3
Suggests
- neomerx/json-api: To use the Neomerx response builder
This package is auto-updated.
Last update: 2022-02-01 13:03:54 UTC
README
Laravel/Lumen对league/json-guard的集成。
此包为实验性,可能会随时出现错误。
安装
通过Composer
$ composer require yuloh/illuminate-json-guard
注册服务提供者
将以下行添加到app/boostrap.php
$app->register(Yuloh\JsonGuard\Illuminate\LumenServiceProvider::class);
发布配置文件
由于Lumen没有发布命令,您需要手动复制配置文件。
cp ./vendor/league/illuminate-json-guard/config/json-guard.php ./config/json-guard.php
用法
控制器验证
您可以使用提供的ValidatesJsonRequests
特性来轻松验证对JSON Schema的请求。
特性提供了一个validateJson
方法。只需调用方法,传入当前请求和您希望使用的模式名称,请求体将根据该模式进行验证。
如果验证失败,该方法将抛出JsonSchemaValidationException
异常。异常将被转换为包含所有相关错误信息的JSON响应。
use Yuloh\JsonGuard\Illuminate\Http\ValidatesJsonRequests; class UsersController extends Controller { use ValidatesJsonRequests; public function show(Request $request, int $id) { $this->validateJson($request, 'user.json'); return User::find($id); } }
路由中间件
还包括路由中间件。路由中间件只接受您希望使用的模式的名称作为唯一参数。如果验证失败,中间件将返回错误信息的JSON响应,而不是传递到您的处理器。
$app->post('/users', ['middleware' => 'json-schema:user.json', function () { // }]);
加载模式
@todo
本地化
@todo
自定义错误响应
@todo
测试
$ composer test
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。