如何使用API​​在Drupal中添加数据集

时间:2017-01-19 09:40:53

标签: drupal drupal-7 dataset dkan

我是DRUPAl和DKAN的新手。我有一个使用DRUPAL和DKAN构建的现有应用程序。我想从这个基于Drupal的应用程序中公开一个功能,以便它公开一个API,使用它可以添加数据集。这个新的API将由另一个应用程序使用。

我尝试使用谷歌搜索,但找不到任何非常具体的内容。

1 个答案:

答案 0 :(得分:0)

这是通过API添加数据集的示例。

// Set up request URL.
$request_url = 'http://example.com/api/dataset/node';

// Set up dataset data.
// A great explanation on how to target each node field can be found on the 'Identifying field names' article linked on the 'Documentation' section.
$dataset_data = array(
    'type' => 'dataset',
    'title' => 'Example dataset',
    'status' => 1,
    'body[und][0][value]' => 'The description',
    'field_resources[und][0][target_id]' => 'Madison Polling Places (5)', // Resource title plus node id
    'field_author[und][0][value]' => 'Bob Lafollette'
);
$dataset_data = http_build_query($dataset_data);

// Set up request.
$curl = curl_init($request_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json', 'X-CSRF-Token: ' . $csrf_token));
curl_setopt($curl, CURLOPT_POST, 1); // Do a regular HTTP POST.
curl_setopt($curl, CURLOPT_POSTFIELDS, $dataset_data); // Set POST data.
curl_setopt($curl, CURLOPT_COOKIE, "$cookie_session");
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_FAILONERROR, TRUE);

// Execute request and get response.
$response = curl_exec($curl);

有关详细信息,请查看http://docs.getdkan.com/en/latest/apis/rest-api.html

上的官方文档