php - 有什么方法可以为 wordpress 中的自定义数据库表创建自定义 REST API
问题描述
我正在创建一个 android 应用程序,并且我正在使用 wordpress 来创建相同的网站。我需要一个 REST API 来处理应用程序和用户的数据。
我需要在同一台服务器上存储需要单独数据库的各种数据,其中包括应用程序和网站的集中化。为什么我需要这样做?因为我不知道如何使用任何其他 PHP 框架创建 REST api。而且我不想使用firebase,因为我需要将数据存储在像MySQL这样的结构化数据库中。
有没有办法在 wordpress 中为单独的数据库编写用于 CRUD 操作的自定义控制器?或者,如果不是单独的数据库,那么有什么方法可以将 API 用于与 wordpress 相同的数据库中的自定义表?
解决方案
是的,您几乎可以以任何您想要的方式扩展 WP REST API。您可以使用该功能添加任何您想要的路线register_rest_route()
。
例如,我有几个自定义帖子类型,它们依赖于来自其他关系数据库和表的信息。
foreach( $ext_post_types as $post_type ){
$post_type = pluralize($post_type);
register_rest_route( 'ext/v1', "/{$post_type}/(?P<ID>\d+)", array(
'methods' => 'GET',
'callback' => "extended_api_endpoint_{$post_type}"
) );
}
在每个回调函数中,我处理来自其他表、帖子类型等所需的所有数据
function extended_api_endpoint_props( $data ){
$external_data = get_external_relational_data( absint($data['ID']) );
if( empty( $external_data ) ){
return null;
}
$return = array();
foreach( $external_data as $data_id ){
$return[] = generate_json_data( $data_id );
}
return $return;
}
这让我可以提取我想要的所有信息(该get_external_relational_data()
函数是一个函数,它使用$wpdb
该类从自定义表中提取我想要的所有内容,然后我有另一个自定义函数以 WP REST API 有效 JSON 格式返回它generate_json_data()
,然后返回数据。
这让我可以访问https://[MYSITE].com/wp-json/ext/v1/props/12345以获取我的所有自定义数据库信息,同时仍被原生集成到 WP REST API 中。
推荐阅读
- javascript - OnBlur Javascript 文本框验证
- python - 将文本附加到行
- python - 我怎样才能在我的views.py中写这个过滤器
- node.js - 如何更新 Mogodb 文档的架构
- flutter - RangeError(索引):无效值:不在包含范围内 0..1273:1274
- html - 表格行悬停以显示工具栏
- flutter - 容器设计结构——Flutter
- c - 如何获取命令行参数以从同一 c 程序文件中的另一个方法读取输出?
- unity3d - 为什么 Unity 在构建中包含编辑器目录
- html - 如何使用纯 CSS 在一个 div 中订购(两列)长文本?