WP-AJAX VS WP REST API:从外部向网站请求使用什么?

时间:2017-07-18 作者:Stanislav Belichenko

我有关于WP的网站。此外,我在一个web服务中有一个帐户。我需要从这个web服务获得一个到我网站特定地址的请求。这是一个我想用自己的插件处理的webhook。

外部对网站的请求使用什么,wp-ajaxWP REST API? 我对处理这个请求的速度不感兴趣。我对安全方面的正确方式和普遍接受的做法感兴趣。

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

每种方法都有各自的优缺点。您可能需要根据自己的需要进行选择。它们都很安全,否则它们就不会存在于核心。

REST-API是现代著名的API,REST API是比Admin AJAX最近添加到(或者更好地说是与)核心的。它非常适合用于移动应用程序和API开发。

Advantages

  • 编写、开发和调试更简单
  • 对于登录和未登录的用户不需要单独的功能
  • 核心已经有一些内置的处理程序,可以加快开发过程
  • 响应可以很容易地用于不在WordPress上运行的应用程序或平台

    Disadvantages

    <它不会产生任何用户友好的响应。输出是JSON格式的,在某些情况下不能使用JSON,例如用于SEO目的。然而,有些人可能会发现这是一个优势,与处理简单的文本输出相比,使用JavaScript和JSON需要更多的知识,管理AJAX是WordPress的古老AJAX处理程序,管理AJAX早在我记忆中就存在于core中,是core本身处理管理区域中请求的方式。

    Advantages

    <它直接输出内容,可以在任何地方使用,甚至可以由搜索引擎使用。某些脚本(如Custombox)仅支持这种响应,它对登录和注销的用户有单独的功能。虽然您可以使用REST-API中的条件来实现这一点,但有些人可能会发现这很有用,因为您只需将其放入div 或您需要的任何地方

    Disadvantages

    <由于输出是纯HTML(默认情况下),因此不应该(甚至可能不能)在API和应用程序开发中使用它。结论很难说应该使用哪一种,它们都是有用的处理程序,如果其中任何一种都不安全,那么它肯定不会在核心中存在这么多年。因此,不存在安全性问题,但如果您担心安全性,仍然需要SSL证书。

    性能、请求类型和开发平台决定了应该使用哪一个。

SO网友:ggedde

我知道有一些方法可以允许使用Rest API进行身份验证,但要使其正常工作需要付出额外的努力。

表示使用以下函数is_user_logged_in() 对于Rest API,它不能立即工作,但它可以通过AJAX方法工作。

因此,我的答案是,当您需要它从网站向自身发出请求时,例如,当JS需要一些数据时,通常最好使用AJAX方法,因为如果需要,您可以完全访问WP功能和身份验证。

如果您需要从第三方软件发出请求,该软件将有权访问您可以通过身份验证的用户登录名和密码

您不需要用户数据或来自网站的任何其他经过验证的数据,只需要简单的数据,如“热门帖子”,等等,然后使用Rest API。

结束

相关推荐

Admin-ajax.php在子域上无法正常工作

我试图将产品价格(从数据库中提取)乘以cookie存储的货币,对应于切换语言。为了实现这一点,我使用了AJAX脚本和几种方法。问题在于方法currencyRates();尽管在测试环境中,一切都很正常(我使用的是子文件夹而不是子域),但在生产级方法上currencyRates(); 只是返回值1(在方法开始时初始化,当var_dump $rate 在foreach循环中,它给了我期望的值,但当我尝试返回时,它总是在开始变量处初始化的值$rate = 1). 发生了什么事?子域如何影响这种类型的脚本?数据库