문제

I have uploaded some data to the CKAN datastore. I want to create, update or delete a row/column to the data in the datastore?

How to do that in CKAN using Datastore API?

도움이 되었습니까?

해결책

See the Datastore API docs, specifically, I think datastore_upsert and datastore_delete are what you want.

다른 팁

You can achieve your requirement by CKAN Datastore API's

Example :

For Create, update and delete you have to need CKAN API KEY which you can get from your profile page of CKAN. You have to pass this API KEY through headers Authorization : {{YOUR_CKAN_API_KEY}}

Create a Datastore

For creating a datastore you have to POST the parameter to your endPoint.

Endpoint : http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_create

Post Values :

{ "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"}
             ]

}

Primary Key is an optional parameter . If you need to update a unique/primary key is needed. You can also specify the type of each field in fields parameter.

Datastore Upsert (update or insert)

Endpoint : http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_upsert

POST Values:

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

             ],
  "method" : "insert"


}

Possible methods: upsert/insert/update. By default the value is upsert (Update if record with same key already exists, otherwise insert. Requires unique key.)

For Delete

Endpoint : http://{{YOUR_CKAN_DOMAIN}}/api/3/action/datastore_delete

POST Values:

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

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top