我想创建一个 Apigility REST 服务,它接受例如用户对象的 POST,该用户对象具有包含地址对象数组的字段。我可以在没有验证器的情况下定义字段并在我的代码中处理原始 JSON,但我想知道是否有更好的方法来执行此操作,其中嵌套对象也可以由 Apigility 验证?
最佳答案
Apigility 有一个名为 content-validation 的模块——它允许您为服务配置输入过滤器,请求数据将通过输入过滤器进行验证,并在验证失败时返回适当的 ApiProblem 响应。 (见 https://apigility.org/documentation/api-primer/content-validation)
这仍然让您有责任配置适合您需求的输入过滤器。
我会检查 packagist.org 的 JSON Schema 验证器库,它可以采用 JSON 模式和 JSON 有效负载,并验证有效负载是否根据模式正确形成。然后您可以轻松实现自定义InputFilter
并将其绑定(bind)到您的服务。这将验证主要对象和子对象的格式是否正确(即:用户具有姓名、电子邮件、出生日期和地址字段包含所有具有地址/街道/zip/等的对象)。
关于json - Apigility 字段接受嵌入对象的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24577511/