Drupal商务请求是如何形成的?

时间:2018-06-06 15:05:35

标签: drupal drupal-7 drupal-modules

我们假设我在Drupal上有商业网站。有Drupal Commerce模块。我想用api从我的商店检索完整的订单。可能吗?我无法找到这些请求的任何信息(响应格式等)。另外我不需要php示例,也许还有Rest API?

1 个答案:

答案 0 :(得分:0)

我认为从简单到(有点)复杂的方法很少。

  • 由于您提到仅检索数据,简单的方法是创建列出所有订单的新视图,您可以配置此视图以将输出呈现为XML或JSON。使用的模块可以是视图数据导出,也可以是视图数据源。

  • 第二个解决方案是创建一个自定义模块,使用hook_menu创建自定义端点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);
}