API de datos de CKAN

Acceso ao recurso de datos mediante unha API web con servizo completo de consulta. Pode obter máis información na documentación principal da API de datos de CKAN e da extensión de «Almacén de datos» (DataStore).

Exemplos de código:

Obter 5 resultados que conteñan «jones» en calquera campo:
curl https://data.kaltimprov.go.id/gl/api/action/datastore_search \
  -H"Authorization:$API_TOKEN" -d '
{
  "resource_id": "9699c009-7ca1-41fd-82dc-7d301b451a7e",
  "limit": 5,
  "q": "jones"
}'
const resp = await fetch(`https://data.kaltimprov.go.id/gl/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        resource_id: '9699c009-7ca1-41fd-82dc-7d301b451a7e',
        limit: 5,
        q: 'jones'
    })
})
await resp.json()
$json = @'
{
  "resource_id": "9699c009-7ca1-41fd-82dc-7d301b451a7e",
  "limit": 5,
  "q": "jones"
}
'@
$response = Invoke-RestMethod https://data.kaltimprov.go.id/gl/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records

(usando a biblioteca cliente ckanapi)

from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.kaltimprov.go.id/gl/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="9699c009-7ca1-41fd-82dc-7d301b451a7e",
    limit=5,
    q="jones",
)
print(result['records'])
library(httr2)

req <- request("https://data.kaltimprov.go.id/gl/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id = '9699c009-7ca1-41fd-82dc-7d301b451a7e',
        limit = 5,
        q = 'jones'))
    req_perform %>% 
    resp_body_json
Obter resultados con «conca hidrográfica» ou «enquisa» como asunto e «activo» como etapa:
curl https://data.kaltimprov.go.id/gl/api/action/datastore_search \
-H"Authorization:$API_TOKEN" -d '
{
"resource_id": "9699c009-7ca1-41fd-82dc-7d301b451a7e",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}'
const resp = await fetch(`https://data.kaltimprov.go.id/gl/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({resource_id: '9699c009-7ca1-41fd-82dc-7d301b451a7e', filters: {
        subject: ['watershed', 'survey'],
        stage: 'active'
    }})})
await resp.json()
$json = @'
{
  "resource_id": "9699c009-7ca1-41fd-82dc-7d301b451a7e",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}
'@
$response = Invoke-RestMethod https://data.kaltimprov.go.id/gl/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records
from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.kaltimprov.go.id/gl/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="9699c009-7ca1-41fd-82dc-7d301b451a7e",
    filters={
      "subject": ["watershed", "survey"],
      "stage": "active",
    },
)
print(result['records'])
library(httr2)

req <- request("https://data.kaltimprov.go.id/gl/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id='9699c009-7ca1-41fd-82dc-7d301b451a7e', 
        filters = list(
            subject = list("watershed", "survey"), 
            stage = "active")))
    req_perform %>% 
    resp_body_json

É posíbel acceder a algúns puntos de acceso á API mediante unha cadea de consulta GET.

Exemplo de consulta (primeiros 5 resultados)

https://data.kaltimprov.go.id/gl/api/action/datastore_search?resource_id=9699c009-7ca1-41fd-82dc-7d301b451a7e&limit=5

Exemplo de consulta (resultados contendo «jones»)

https://data.kaltimprov.go.id/gl/api/action/datastore_search?resource_id=9699c009-7ca1-41fd-82dc-7d301b451a7e&q=jones