WP_REST_Response 与 WP_Error

Posted

技术标签:

【中文标题】WP_REST_Response 与 WP_Error【英文标题】:WP_REST_Response vs WP_Error 【发布时间】:2018-10-12 15:15:30 【问题描述】:

我对如何在 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":"错误信息。"

第二个更详细:

"code":"rest_custom_error","message":"错误信息。","data":"status":403

但我还需要指定错误代码(第一个参数),这对我的前端实现没有任何好处。除了语法之外,我对性能、安全性和面向未来的因素方面的差异感到好奇。

那么除了个人偏好之外,还有什么理由更喜欢其中一个?

【问题讨论】:

这也让我很困惑。你解决了吗? 这可能与 WP 如何处理响应有关。只需使用第二个变体。 【参考方案1】:

我这样做:

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)

【讨论】:

以上是关于WP_REST_Response 与 WP_Error的主要内容,如果未能解决你的问题,请参考以下文章

python网络编程基础(线程与进程并行与并发同步与异步)

=与==&与&&| 与 || 的区别

与 0 进行比较与与某个值进行比较是不是更快?

三.工具与市场-债券与债务股票与公司

RESTfulREST 与 RESTful 理解与实践

RESTfulREST 与 RESTful 理解与实践