如何处理来自API请求的新POST?

时间:2018-10-24 作者:kalm42

甚至问这个我都觉得很傻,因为看起来应该很简单,但我很难找到这个信息。

Goal:向WordPress API发出POST请求,并提供新的POST信息。获取新的帖子信息,对其进行验证,如果信息有效且用户具有权限,则将帖子添加到数据库中。

我假设我需要一个插件来公开一个新路由,并让它处理对该路由的所有请求。我有一个nextjs的无头设置,我需要前端用户能够添加帖子。我可以找出前端的一半,这是后端的一半,我有问题。

如果您还需要其他信息,请告诉我,我会编辑我的问题以使其更清楚。感谢您抽出时间阅读此文!

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

目标:向WordPress API发出POST请求

确实,请将您的发帖请求发送到example.com/wp-json/wp/v2/posts. 确保打开了pretty permalinks!

使用新的帖子信息。

这就是POST\'d、 并应采用与进入时相同的格式wp_insert_post

获取新的帖子信息,验证它

WP将为其自己的字段自动执行此操作。如果希望注册一个新端点,可以声明所有可能的字段,它们是必需的还是可选的,以及清理和验证回调。API将负责以适当的格式和正确的HTTP代码将任何错误对象返回给客户端

如果信息有效且用户有权限,则将帖子添加到数据库中。

REST API已经检查了这一点,但如果添加自己的端点,则可以指定一个功能,甚至更深入的回调

我假设我需要一个插件来公开一个新路由,并让它处理对该路由的所有请求。

如果需要自定义端点,则需要使用register_rest_route 并提供所需信息。

有关的文档Adding Custom Endpoints

我有一个nextjs的无头设置,我需要前端用户能够添加帖子。我可以找出前端的一半,这是后端的一半,我有问题。

此时,它是一个标准的REST API,有两个区别:

如果您将wpapi 脚本,它将插入REST API的URL,以及您可以使用的有效nonce。假设这些都在同一个域上。然后可以使用wpapi 库发出请求,或fetchjQuery().post

如果您想与另一个域/服务器上的远程WP安装交互,则需要一个插件来实现身份验证,例如OAuth1/2/etc

结束

相关推荐

WordPress REST-API将图像上传到ACF

我使用Wordpress Rest API创建了自己的API。我成功地将所有数据保存在wordpress后端,但我不知道如何获取和保存文件/图像中的数据。 register_rest_route( \'mlcs/v1\', \'/save_data\', array( \'methods\' => \'POST\', \'callback\' => array( $this, \'save_data_post\' ),