我已将一些数据上传到CKAN数据存储区。我想为数据存储区中的数据创建,更新或删除行/列?
如何使用Datastore API在CKAN中做到这一点?
答案 0 :(得分:1)
请参阅Datastore API docs,具体来说,我认为datastore_upsert和datastore_delete是您想要的。
答案 1 :(得分:0)
您可以通过CKAN Datastore API's
满足您的要求示例:
对于创建,更新和删除,您需要CKAN API KEY,您可以从CKAN的个人资料页面获取该密钥。您必须通过标头Authorization : {{YOUR_CKAN_API_KEY}}
创建数据存储区
要创建数据存储区,您必须将参数POST到端点。
端点: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参数中指定每个字段的类型。
数据存储Upsert(更新或插入)
端点:http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_upsert
POST值:
{
"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
POST值:
{
"resource_id": "{{resource_id}}", ",
"force":true,
"filters": {
"name" : "Alex"
}
}