yuloh / illuminate-json-guard

此包已废弃,不再维护。未建议替代包。

Laravel/Lumen对league/json-guard的集成

dev-master 2017-01-04 20:25 UTC

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)。请参阅许可文件以获取更多信息。