我对如何在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));
使用第一个选项,我可以在回复中只包含错误文本,这对我来说已经足够了。所以响应看起来像这样:
{"错误":"错误讯息。"}
第二个更详细:
{"代码":" rest_custom_error","消息":"错误消息。","数据&#34 ;:{"状态":403}}
但我还需要指定错误代码(第一个参数),这对我的前端实现没有任何好处。除了语法之外,我对性能,安全性和面向未来的因素的差异感到好奇。
除了个人喜好之外,还有什么理由更喜欢一个而不是另一个?
答案 0 :(得分:0)
我这样做如下:
WP_REST_Response // Used when endpoint code runs just fine but needs to
// tell the client about some other downstream error (e.g. 4xx)
WP_Error // Used when endpoint code has an issue and needs to tell you
// it didn't compute or couldn't find resources etc (e.g. 5xx)