API de datos de CKAN

Accede a los datos del recurso a través de una API web con soporte de consultas potentes.. Encontrá más información en la documentación principal de la API de datos de CKAN y DataStore.

Ejemplos de código:

Obtener 5 resultados que contengan "jones" en cualquier campo:
curl https://data.kaltimprov.go.id/es_AR/api/action/datastore_search \
  -H"Authorization:$API_TOKEN" -d '
{
  "resource_id": "853385ba-b99d-4eed-bfa3-ddd9f8c72288",
  "limit": 5,
  "q": "jones"
}'
const resp = await fetch(`https://data.kaltimprov.go.id/es_AR/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        resource_id: '853385ba-b99d-4eed-bfa3-ddd9f8c72288',
        limit: 5,
        q: 'jones'
    })
})
await resp.json()
$json = @'
{
  "resource_id": "853385ba-b99d-4eed-bfa3-ddd9f8c72288",
  "limit": 5,
  "q": "jones"
}
'@
$response = Invoke-RestMethod https://data.kaltimprov.go.id/es_AR/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records

(usando la biblioteca de clientes ckanapi)

from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.kaltimprov.go.id/es_AR/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="853385ba-b99d-4eed-bfa3-ddd9f8c72288",
    limit=5,
    q="jones",
)
print(result['records'])
library(httr2)

req <- request("https://data.kaltimprov.go.id/es_AR/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id = '853385ba-b99d-4eed-bfa3-ddd9f8c72288',
        limit = 5,
        q = 'jones'))
    req_perform %>% 
    resp_body_json
Obtener resultados con "watershed" o "survey" como asunto y "active" como su etapa:
curl https://data.kaltimprov.go.id/es_AR/api/action/datastore_search \
-H"Authorization:$API_TOKEN" -d '
{
"resource_id": "853385ba-b99d-4eed-bfa3-ddd9f8c72288",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}'
const resp = await fetch(`https://data.kaltimprov.go.id/es_AR/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({resource_id: '853385ba-b99d-4eed-bfa3-ddd9f8c72288', filters: {
        subject: ['watershed', 'survey'],
        stage: 'active'
    }})})
await resp.json()
$json = @'
{
  "resource_id": "853385ba-b99d-4eed-bfa3-ddd9f8c72288",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}
'@
$response = Invoke-RestMethod https://data.kaltimprov.go.id/es_AR/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/es_AR/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="853385ba-b99d-4eed-bfa3-ddd9f8c72288",
    filters={
      "subject": ["watershed", "survey"],
      "stage": "active",
    },
)
print(result['records'])
library(httr2)

req <- request("https://data.kaltimprov.go.id/es_AR/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id='853385ba-b99d-4eed-bfa3-ddd9f8c72288', 
        filters = list(
            subject = list("watershed", "survey"), 
            stage = "active")))
    req_perform %>% 
    resp_body_json

Algunos puntos finales de la API se pueden acceder usando una cadena de consulta GET.

Consulta ejemplo (primeros 5 resultados)

https://data.kaltimprov.go.id/es_AR/api/action/datastore_search?resource_id=853385ba-b99d-4eed-bfa3-ddd9f8c72288&limit=5

Consulta ejemplo (resultados que contienen 'jones')

https://data.kaltimprov.go.id/es_AR/api/action/datastore_search?resource_id=853385ba-b99d-4eed-bfa3-ddd9f8c72288&q=jones