drupal - Drupal 商务请求是什么样的?
问题描述
假设我在 Drupal 上有商务网站。有 Drupal Commerce 模块。我想使用 api 从我的商店中检索完整的订单。可能吗?我找不到任何有关此请求的信息(什么是响应格式等)。另外我不需要php示例,也许有Rest API?
解决方案
我认为有几种方法可以做到这一点,从简单到(有点)复杂。
由于您只提到检索数据,简单的方法是创建一个列出所有订单的新视图,您可以配置此视图以将输出呈现为 XML 或 JSON。使用的模块可以是 Views 数据导出,也可以是 Views 数据源。
第二种解决方案是创建一个自定义模块,该模块使用 hook_menu 创建您的自定义端点 URL,该 URL 调用一个回调函数,您可以在其中定义所需的输出
function YOURMODULE_menu() {
$items = array();
$items['api/order'] = array(
'title' => 'API Orders',
'page callback' => 'YOURMODULE_api_orders_callback',
'access arguments' => array('access content')
);
$items['api/order/%'] = array(
'title' => 'API Orders',
'page callback' => 'YOURMODULE_api_orders_callback',
'page arguments' => array(2),
'access arguments' => array('access content')
);
return $items;
}
function YOURMODULE_api_orders_callback($order_id = NULL) {
$order_ids = array();
if(!is_null($order)) {
array_push($order_ids, $order_id);
}
// Load all orders or only 1 order
// We can use commerce_order_load_multiple()
// or use EntityFieldQuery() if need a complex logic filtering orders
$orders = commerce_order_load_multiple($order_ids);
drupal_json_output($orders);
}
- 最后一个解决方案是使用 Services 模块,创建自定义模块并创建自定义服务,您可以在其中定义自定义资源 - 在本例中为commerce_order。可以在此处找到创建自定义服务的教程https://valuebound.com/resources/blog/how-to-create-custom-web-services-for-drupal-7-0
推荐阅读
- c++ - 在 C++ 中将 4 个数字组合成一个 4 位数字
- php - MySQL 选择基于 MySQL JSON 数组值
- java - 我想在 JOptionPane 中显示 for 循环的输出
- flutter - 在另一个页面上时导航到内页
- c++ - 使用 Bison 解析简单 C 源代码的问题
- javascript - 运行一个函数指定的次数
- javascript - 如何从 React Native 中的另一个功能组件更改一个功能组件的状态?
- java - Java RMI 客户端如何使用域名连接到 Java RMI 服务器
- algorithm - 使用位操作处理负数
- discord.js - 在 discord.js 中检测嵌入标题