الواجهة البرمجية API لبيانات CKAN

الوصول إلى بيانات الموارد عبر واجهة الويب البرمجية API مع دعم قوي للاستعلام. Further information in the main CKAN Data API and DataStore documentation.

Code examples:

Get 5 results containing "jones" in any field:
curl https://data.wprdc.org/ar/api/action/datastore_search \
  -H"Authorization:$API_TOKEN" -d '
{
  "resource_id": "9eacedae-6f38-4621-be8e-7386bf3e3b48",
  "limit": 5,
  "q": "jones"
}'
const resp = await fetch(`https://data.wprdc.org/ar/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        resource_id: '9eacedae-6f38-4621-be8e-7386bf3e3b48',
        limit: 5,
        q: 'jones'
    })
})
await resp.json()
$json = @'
{
  "resource_id": "9eacedae-6f38-4621-be8e-7386bf3e3b48",
  "limit": 5,
  "q": "jones"
}
'@
$response = Invoke-RestMethod https://data.wprdc.org/ar/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records

(using the ckanapi client library)

from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.wprdc.org/ar/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="9eacedae-6f38-4621-be8e-7386bf3e3b48",
    limit=5,
    q="jones",
)
print(result['records'])
library(httr2)

req <- request("https://data.wprdc.org/ar/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id = '9eacedae-6f38-4621-be8e-7386bf3e3b48',
        limit = 5,
        q = 'jones'))
    req_perform %>% 
    resp_body_json
Get results with either "watershed" or "survey" as subject and "active" as its stage:
curl https://data.wprdc.org/ar/api/action/datastore_search \
-H"Authorization:$API_TOKEN" -d '
{
"resource_id": "9eacedae-6f38-4621-be8e-7386bf3e3b48",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}'
const resp = await fetch(`https://data.wprdc.org/ar/api/action/datastore_search`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({resource_id: '9eacedae-6f38-4621-be8e-7386bf3e3b48', filters: {
        subject: ['watershed', 'survey'],
        stage: 'active'
    }})})
await resp.json()
$json = @'
{
  "resource_id": "9eacedae-6f38-4621-be8e-7386bf3e3b48",
  "filters": {
    "subject": ["watershed", "survey"],
    "stage": "active"
  }
}
'@
$response = Invoke-RestMethod https://data.wprdc.org/ar/api/action/datastore_search`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records
from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.wprdc.org/ar/', apikey=API_TOKEN)
result = rc.action.datastore_search(
    resource_id="9eacedae-6f38-4621-be8e-7386bf3e3b48",
    filters={
      "subject": ["watershed", "survey"],
      "stage": "active",
    },
)
print(result['records'])
library(httr2)

req <- request("https://data.wprdc.org/ar/api/action/datastore_search")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        resource_id='9eacedae-6f38-4621-be8e-7386bf3e3b48', 
        filters = list(
            subject = list("watershed", "survey"), 
            stage = "active")))
    req_perform %>% 
    resp_body_json
SQL query example:
curl https://data.wprdc.org/ar/api/action/datastore_search_sql \
  -H"Authorization:$API_TOKEN" -d @- <<END
{
  "sql": "SELECT * FROM \"9eacedae-6f38-4621-be8e-7386bf3e3b48\" WHERE title LIKE 'jones'"
}
END
const resp = await fetch(`https://data.wprdc.org/ar/api/action/datastore_search_sql`, {
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        authorization: API_TOKEN
    },
    body: JSON.stringify({
        sql: `SELECT * FROM "9eacedae-6f38-4621-be8e-7386bf3e3b48" WHERE title LIKE 'jones'`
    })
})
await resp.json()
$json = @'
{
  "sql": "SELECT * from \"9eacedae-6f38-4621-be8e-7386bf3e3b48\" WHERE title LIKE 'jones'"
}
'@
$response = Invoke-RestMethod https://data.wprdc.org/ar/api/action/datastore_search_sql`
  -Method Post -Body $json -Headers @{"Authorization"="$API_TOKEN"}
$response.result.records
from ckanapi import RemoteCKAN

rc = RemoteCKAN('https://data.wprdc.org/ar/', apikey=API_TOKEN)
result = rc.action.datastore_search_sql(
    sql="""SELECT * from "9eacedae-6f38-4621-be8e-7386bf3e3b48" WHERE title LIKE 'jones'"""
)
print(result['records'])
library(httr2)

req <- request("https://data.wprdc.org/ar/api/action/datastore_search_sql")
result <- req %>% 
    req_headers(Authorization = API_TOKEN) %>% 
    req_body_json(list(
        sql = "SELECT * FROM \"9eacedae-6f38-4621-be8e-7386bf3e3b48\" WHERE title LIKE 'jones'"))
    req_perform %>% 
    resp_body_json

Some API endpoints may be accessed using a GET query string.

مثال على الاستعلام (أول 5 نتائج)

https://data.wprdc.org/ar/api/action/datastore_search?resource_id=9eacedae-6f38-4621-be8e-7386bf3e3b48&limit=5

مثال على الاستعلام (النتائج التي تحتوي على 'jones' )

https://data.wprdc.org/ar/api/action/datastore_search?resource_id=9eacedae-6f38-4621-be8e-7386bf3e3b48&q=jones

مثال على الاستعلام (من خلال عبارة SQL)

https://data.wprdc.org/ar/api/action/datastore_search_sql?sql=SELECT * from "9eacedae-6f38-4621-be8e-7386bf3e3b48" WHERE title LIKE 'jones'