我对WordPress的REST API中错误的处理方式有点困惑,在他们的示例中,他们建议使用WP_Error
来返回错误,但是WP_REST_Response
将HTTP状态代码作为第二个参数,这使得它更短,更符合我的口味。
所以我比较一下这种返回错误的方法:
return new WP_REST_Response(array('error' => 'Error message.'), 400);
有了这个:
return new WP_Error('rest_custom_error', 'Error message.', array('status' => 400));
对于第一个选项,我可以在响应中只包含错误文本,这对我来说已经足够了,所以响应如下所示:
{" error ":"错误消息。"}
第二个更详细:
{"代码":" rest_custom_error ","消息":"错误消息.","数据":{"状态":403}}
但是我还需要指定错误代码(第一个参数),这对我的前端实现没有任何好处,除了语法之外,我对性能、安全性和未来因素的差异很感兴趣。
那么,除了个人喜好之外,还有什么理由让我们更喜欢其中一个呢?
2条答案
按热度按时间sxissh061#
我做如下:
fcg9iug32#
据我所知,WordPress会以不可预知的方式更改响应的状态代码。这很愚蠢。例如,如果你创建一个状态为400的WP_REST_RESPONSE,它实际上会将其发送为状态200,并在正文中以“status:400”作为数据。
我做什么:只使用PHP响应函数:
如果你说我错了,请解释一下使用这两个函数 Package 器的好处。如果你为Automattic工作,并且在core本身创建回归,我就能看到好处。如果你是一个插件或主题开发者,[并且你假设core工作]这些函数应该避免使用。