json - Apigility 字段接受嵌入对象的数组?

标签 json zend-framework2 laminas-api-tools

我想创建一个 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/

相关文章:

javascript - 使用 Json 从服务器加载所有图像,并将它们显示为 Masonry

php - 上传过程中文件上传进度

mysql - 错误 e.rest apigility 如何创建数据库连接服务?

java - Java中解码json返回null

java - couchbase 中每个 java POJO 的文档模型是什么

java - 无法将 java.util.ArrayList 的实例反序列化出 VALUE_STRING

active-directory - 使用 Zend\Authentication\Adapter\Ldap (ZF2) 根据 Active Directory 验证凭据

symfony - 教义2 : [Semantical Error] Cannot select entity through identification variables without choosing at least one root entity alias

php - 在映射器中注入(inject)数据库适配器

php - (如何)过滤器/参数可以与 Apigility 中的数据库连接服务一起使用吗?