正如我在评论中所说endpoint 对我来说很好。
你说,
我设法停止给出错误,但我无法获得传入参数的内容,我放入正则表达式,它不断给出错误。
所以不确定“正则表达式”是什么,但您可以使用$request->get_param()
获取特定参数,或$request->get_params()
要获取请求中的所有参数(例如URL),请执行以下操作:
function notifications_cbt_func( $request ) {
// Get specific parameters:
$merchant_id = $request->get_param( \'merchant_id\' );
$resource = $request->get_param( \'resource\' );
// Get all the parameters:
$params = $request->get_params();
//...
}
请注意,在上述示例中
$request
变量是
WP_REST_Request
实例,请检查该链接中的类方法、属性等。
您还应该检查REST API handbook. :)
更新以回应评论或编辑的问题,
在您的回拨中(notifications_cbt_func()
), 没有必要json_encode()
因为WordPress REST API端点确实返回JSON编码的字符串,即JSON响应。
所以就这么做吧return $params;
或者任何需要归还的东西。
关于“但是我的路线GET和POST都返回null”—那是因为你$$params
其中(是null
和)应该是$params
.
还有,没必要打电话register_rest_route()
同一路线多次(/cbt-api/v1/notifications
在您的情况下)。只需调用一次,第三个参数是端点数组:
register_rest_route( \'cbt-api/v1\', \'/notifications\', array(
array(
\'methods\' => \'GET\',
\'callback\' => \'notifications_cbt_func\',
),
array(
\'methods\' => \'POST\',
\'callback\' => \'notifications_cbt_func\',
),
) );
对于完全相同的回调(和参数),只需提供一个方法数组:
register_rest_route( \'cbt-api/v1\', \'/notifications\', array(
\'methods\' => array( \'GET\', \'POST\' ),
\'callback\' => \'notifications_cbt_func\',
) );