Building a custom REST API

时间:2014-09-29 作者:Yep_It\'s_Me

我有一个WordPress。org站点,它接受用户输入,搜索自定义数据库并显示查询结果。我使用wpdb class. 现在,我正试图让它在android应用程序中运行。

据我所知,构建RESTful服务器是目前这类事情的“最佳实践”。我研究了一些可以帮助我做到这一点的插件,我发现:

  1. json-rest-api - 在我看来,这只公开了WordPress的核心功能(即帖子、页面、用户等),我看不出如何让它在非默认表上执行自定义查询。

  2. This blog post 他说wp mvc 完全符合我的要求,只是它已经两年多没有更新了,所以有点排除了。

    还有Jetpack 但据我所见,json rest api是这个的更新版本,它似乎也只提供核心功能。

有没有办法让这些插件为自定义端点工作?还是有其他插件我还没有找到?

如果我不使用插件,我想我必须自己开发插件。我可以从头开始(使用wpdb, msqli 或者在API的帮助下,例如Restler.

如果我自己滚动,我应该在我的主题中创建一个模板,在那里做其余的事情,并将该主题分配给仪表板中的一个页面吗?或者让另一台服务器独立于WordPress运行会更好吗?

在我看来,这些是我唯一的选择。我想知道这类事情的推荐最佳做法是什么。我很难相信没有其他人做过这件事。有没有我忽略的选项?

3 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

TL;是的,WordPress当然可以作为移动应用程序的后端。是的,页面可以充当rest端点/接口。不,主题模板不是逻辑的正确领域。编写自己的插件。

我很难相信没有其他人做过这件事。

一、 首先,拥有。不止一次。我几乎可以肯定,我并不孤独。“没有人在博客上广泛讨论过这个问题”可能是更正确的概念。

如果我不使用插件,我想我必须自己开发插件。我可以从头开始(使用wpdb、msqli或其他东西)或借助API(如Restler.

我不知道“Restler”,这超出了这个堆栈的范围<就“使用wpdb、msqli或其他东西”而言:您肯定会使用wpdb 将(接收到的)数据保存到数据库,但与端点逻辑无关。

主题模板不是您应该研究的内容。主题用于视觉呈现。REST端点根本不需要视觉外观。

通过将端点插入要用于该端点的页面shortcode.

让短代码处理程序/回调函数侦听HTTP POSTGET 并相应地调用数据保存或其他辅助方法。

将WordPress用作端点/后端有意义吗

视情况而定
如果您只需要一个端点来保存数据:不需要。加载整个core只是为了通过使用wpdb 不值得这么做
如果您需要一个可以通过web浏览器登录的后端,该后端可以显示表格数据,提供更改所述数据的方法,甚至可以使用多个访问级别/用户角色和权限,那么是的,这是有意义的。

SO网友:Meglio

API Endpoints 插件应该满足您的所有需求,特别是如果您熟悉MySQL的话。您将执行以下步骤:

创建一个新的Twig模板,输入MysQL查询以从WordPress站点获取数据,并使用Twig语法以任何格式输出数据。例如,JSON。

创建一个新的API端点,为其命名,并将其配置为使用步骤1中创建的细枝模板。

完成后,对要创建的每个端点重复步骤1和2。API端点使用标准WordPress身份验证系统,因此最好在WordPress中创建一个单独的用户,并使用其用户名/密码访问API端点。

SO网友:Kyle Zimmer

WP-restapi的新版本是Beta版,但有关于如何注册自定义REST端点的非常好的文档。还有一个关于如何在版本1中实现的非常小的宣传,我将尝试一下,因为beta版不能保证稳定。我假设您可以在注册的方法中使用wpdb。实际上,我只是使用ACF的东西,并将其预插入php中的对象中,用angularJS创建一个漂亮的、可搜索/可排序的多属性索引页面。

Comparison Between WWP REST API 1 and 2 from their docs

结束