我一直在使用Guzzle模型,并取得了一些成功。响应数据未序列化就很好,我可以使用原始 JSON 响应中没有的其他值来扩充数据。
但是,我的所有模型都缺少其验证结构。当我返回错误类型的意外键或值时,我没有收到任何验证错误。要么我做错了什么,要么我误解了应该发生的事情。
这是我以测试用例形式编写的示例代码:
https://gist.github.com/timwhitlock/8511971
特别要注意最后一个断言。缺少验证错误可能是由缺少结构来解释的。但为什么不见了呢?
Guzzle的作者通过Gist评论回答了我的问题。https://gist.github.com/timwhitlock/8511971#comment-990206
默认情况下,允许响应模型在响应中选取其他(未声明)属性,但您可以将additionalProperties
设置为 false
以防止它。
默认情况下,用于生成响应模型的原始模式不存在,因为大多数用例不需要它,并且当存在时,它会使调试更加混乱。