【发布时间】:2017-10-20 11:20:13
【问题描述】:
我将 Laravel 5.4 用于 api,并且有一个接受 JSON 的端点:
{
"input": {
"owner": "name of owner",
"content": [
]
}
}
我只想获取 input 中的 JSON,并确保它在结构上和基于内容上都是有效的。
使用http://json-guard.thephpleague.com 和他们来自overview 页面的基本示例,无论我如何更改输入,所有内容都会返回有效,因此我认为我使用错误。
根据他们的示例,我构建了以下内容。它通过了验证。问题是我不能让它失败。
路由文件
Route::post('validate', 'TestController@validateJson');
TestController@validateJson
public function validateJson()
{
$dereferencer = \League\JsonReference\Dereferencer::draft4();
$schema = json_decode('{ "properties": { "id": { "type": "string", "format": "uri" } } }');
$data = json_decode('{ "id": "https://json-guard.dev/schema#" }');
$validator = new \League\JsonGuard\Validator($data, $schema);
if ($validator->fails()) {
return response($validator->errors());
}
return response('all ok');
}
我相信我可能需要使用 JSON 参考并定义一个自定义架构,但在我完全理解该示例并让它失败之前,我不想做任何更复杂的事情。
【问题讨论】:
标签: json validation laravel-5.4