我已将一些数据上传到 CKAN 数据存储区。我想为数据存储中的数据创建、更新或删除行/列?
如何在 CKAN 中使用 Datastore API 做到这一点?
请参阅Datastore API 文档,具体来说,我认为datastore_upsert和datastore_delete是您想要的。
您可以通过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"
}
}