如何使用REST API定义查询参数?

时间:2020-07-09 作者:왕뚜껑

我正在尝试使用register_rest_route

register_rest_route 支持定义URL参数,并记录在https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/#arguments

我希望定义一个查询参数列表,并让Wordpress处理验证部分。有没有官方的方法?

1 个回复
最合适的回答,由SO网友:mozboz 整理而成

是的,从link you posted 有清理和验证参数的示例。验证执行一项检查,该检查可能会失败并阻止API调用运行;清理只是执行一些操作来清理或解释参数,并不会停止API调用的运行。

验证示例摘自页面:

<?php
add_action( \'rest_api_init\', function () {
  register_rest_route( \'myplugin/v1\', \'/author/(?P<id>\\d+)\', array(
    \'methods\' => \'GET\',
    \'callback\' => \'my_awesome_func\',
    \'args\' => array(
      \'id\' => array(
        \'validate_callback\' => function($param, $request, $key) {
          return is_numeric( $param );
        }
      ),
    ),
  ) );
} );
您可以在的第二个参数中看到register_rest_route 这定义了一个端点,如/author/1234

的第二个参数的格式register_rest_route 分解为:

  • /author/ 要匹配的URL的初始部分?P 特定于此函数的代码,表示“参数”。注意:调用时,URL中不包含此内容<id> 参数的可选名称,在下面的中使用args, 未作为URL的一部分包含
  • \\d+ 此参数的正则表达式

相关推荐

如何在WordPress 4.7+中使用REST-API进行元查询?

我试图通过元查询进行过滤,但无论我尝试什么,我都无法使其工作。基本上,我希望通过rest API进行此查询:wp-json/wp/v2/books?meta_query[relation]=OR&meta_query[0][key]=arkivera&meta_query[0][value]=1&meta_query[0][compare]== 我尝试了几个不同的自定义字段,但它总是返回所有post对象。在我的函数文件中,我添加了:function api_allow_m