1

我已将一些数据上传到 CKAN 数据存储区。我想为数据存储中的数据创建、更新或删除行/列?

如何在 CKAN 中使用 Datastore API 做到这一点?

4

2 回答 2

1

请参阅Datastore API 文档,具体来说,我认为datastore_upsertdatastore_delete是您想要的。

于 2013-12-17T09:57:47.103 回答
0

您可以通过CKAN Datastore API's实现您的要求

例子 :

对于创建、更新和删除,您必须需要 CKAN API KEY,您可以从 CKAN 的个人资料页面获取。您必须通过标头传递此 API KEYAuthorization : {{YOUR_CKAN_API_KEY}}

创建数据存储

要创建数据存储,您必须将参数发布到您的端点。

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_create

邮政价值观:

{ "resource": {
        "package_id": "{{Package_ID}}"

    }, 
  "fields": [ 
           {"id" : "id"},
             {"id": "name"},
              {"id": "age"}

            ],
  "primary_key":["id"],

  "records": [  { "id":"1","name": "Alex", "age": "25"},
            {"id":"2", "name": "Rony", "age": "12"},
            { "id":"3","name": "Julis", "age": "20"}
             ]

}

主键是一个可选参数。如果您需要更新唯一/主键,则需要。您还可以在 fields 参数中指定每个字段的类型。

数据存储更新插入(更新或插入)

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_upsert

发布值:

{ 
  "resource_id": "{{resource_id}}", 
  "force":true, 
  "records": [ 
                { "id":"3","name": "David", "age": "18"},
            {"id":"4", "name": "John", "age": "22"}

             ],
  "method" : "insert"


}

可能的方法:upsert/insert/update。默认情况下,该值为 upsert(如果具有相同键的记录已存在则更新,否则插入。需要唯一键。)

删除

端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_delete

发布值:

{ 
  "resource_id": "{{resource_id}}", ", 
  "force":true, 
  "filters": {
        "name" : "Alex"
      }

}
于 2018-07-17T07:32:47.680 回答