WordPress是否可以通过调用外部API并将结果直接返回给客户端?

时间:2021-06-17 作者:Kaine

我有一个wordpress站点,它将取代旧的遗留站点,但是旧的遗留站点包含一个SOAP API,我无法在wordpress中重新实现。

wordpress站点是否可以接受对这些API路由的调用,调用API本身,然后将结果返回给调用者,就像原始API已经响应一样?(即,在回复中没有获得wordpress页面或其他wordpress人工制品?)

例如:

致电:

www.mydomain.com/api/getcount/

希望触发对以下对象的调用:

www.mylegacyendpoint.net/api/getcount

并返回结果,以便当DNS更改并且新的wordpress站点在域上启用时(替换该域上的旧旧旧站点),API调用不受影响。

我不太熟悉wordpress作为一个平台,所以我不确定这是可以在wordpress中处理的还是需要在托管环境中处理的

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

我认为大多数可能使用a rewrite rule 在WordPress请求生命周期的早期执行某个PHP来转发和返回请求会有很多缺点。

其他替代方法是使用重写规则将请求定向到a custom PHP AJAX handlerREST API endpoint or controller 并根据那里的请求转发-这两种机制都是为了加载WordPress核心的一小部分。但在我看来,在上述所有选项中,加载WordPress、解析原始请求以及为每个代理请求构建新请求的开销仍然很大。它们还引入了一个额外的故障点。但它们都是有可能的,而且你肯定可以在没有WordPress通常添加的额外标题的情况下返回响应。

使用Apache的ProxyPass 指令由mod_proxy, 或Nginx\'s equivalent directives.