【问题标题】:WordPress REST API validation always considers arrays to be emptyWordPress REST API 验证始终认为数组为空
【发布时间】:2021-10-14 22:27:38
【问题描述】:
    'methods' => ['POST', 'GET'],
    'args' =>
    [
        'users' =>
        [
            'type' => 'array',
            'minItems' => 1,
            'items' =>
            [
                'type' => 'object',
                'properties' =>
                [
                    'user_login' =>
                    [
                        'type' => 'string',
                        'required' => true,
                        'validate_callback' => function($user_login)
                        {
                            error_log("login validation");
                        }
                    ],
                    'user_email' =>
                    [
                        'type' => 'string',
                        'required' => false,
                        'validate_callback' => function($user_email)
                        {
                            error_log("email validation");
                        }
                    ]
                ]
            ]
        ]
    ],
    'callback' => function($request)
    {
        return $request->get_body_params();
    }
]

按原样,每个请求都失败了,说users 数组是空的。 ~~如果我注释掉```minItems`行,请求成功,我可以在回调中获取参数;但是,两个错误日志都不会触发,因此我无法验证传入的数据。我怀疑主要问题是导致 minItems 失败的原因,因为 API 出于某种原因认为没有数据,因此无需验证,直到主回调触发。~~

编辑:minItems 现在可以工作了。其他方面的问题是相同的:在主回调触发之前,args 被视为空,此时它们被正确填充。

【问题讨论】:

    标签: wordpress rest


    【解决方案1】:

    验证回调只能添加到顶级参数,而不是数组项或对象属性。我将提出功能请求;如果它获得批准,我会尽量记住更新这篇文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-09
      • 2013-01-15
      • 1970-01-01
      • 2017-01-07
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多