Nuo ko pradėti

Apžvalga

Kas yra Duomenų API, kaip duomenys sudėlioti į vardų erdves, lenteles ir failus, ir interaktyvus greitas startas.

Atnaujinta

Duomenų API – tai vieša HTTP sąsaja atvirų duomenų, skelbiamų Lietuvos duomenų portale, skaitymui. Ji atveria portalo duomenų ežerą – Apache Iceberg lenteles ir saugomus failus: vardų erdves ir schemas skaitykite su GET, o lentelės eilutes užklauskite ar eksportuokite su POST, grąžinančiu JSON, NDJSON, CSV, Excel arba Parquet.

Tik skaitymui ir vieša

Autentifikacija nereikalinga – nėra jokių API raktų, prieigos raktų ar OAuth apimčių. Katalogo ir failų skaitymas yra GET; lentelės užklausos ir eksportas yra POST su JSON kūnu (API vis tiek tik skaitymui – POST perduoda tik užklausos aprašą). Visuose pavyzdžiuose naudojamas bazinis URL https://api.dataportal.gov.lt ir tikri, gyvi duomenys.

Visuose vadovuose naudojame vieną tikrą duomenų rinkinį – Toksikologinių tyrimų rezultatai mirties atvejais (Higienos institutas) – kad kiekvieną pavyzdį būtų galima nukopijuoti ir paleisti:

ParametrasTipasAprašymas
Vardų erdvė111958286Duomenis skelbianti organizacija (Higienos instituto įmonės kodas).
Lentelėmirusiuju_toksikologinis_rezultatas22 143 eilutės, 14 stulpelių.

Išbandykite gyvai

Pasirinkite stulpelius, nustatykite filtrą, rūšiavimą ir puslapį, tada spauskite Vykdyti, kad iškviestumėte tikrą API tiesiai iš naršyklės. Užklausą peradresuoja dokumentacijos svetainė, todėl ji veikia net ir tada, kai API nesiunčia CORS antraščių.

POST/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/query
Stulpeliai (atranka)
Rūšiavimas
 
Filtras
curl -X POST 'https://api.dataportal.gov.lt/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/query' \
  -H 'Content-Type: application/json' \
  -d '{"limit":5,"select":"pavadinimas,lytis,mirties_metai,amziaus_grupe,mirties_priezastis","sort":"mirties_metai"}'
2 rodoma eilučių · iš viso: 22 143 · puslapis 1
Atsakymas
lytisamziaus_grupemirties_metaipavadinimasmirties_priezastis
Moteris65_692021Etanolis (etilo alkoholis)Kita
Moteris65_692018KarboksihemoglobinasAtsitiktiniai apsinuodijimai

Kaip sudėlioti duomenys

API turi tris išteklių rūšis:

  • Vardų erdvė – talpykla, identifikuojama tašku atskirtu keliu. Čia vardų erdvė yra duomenų teikėjo įmonės kodas, 111958286. Vardų erdvė talpina antrines vardų erdves, lenteles ir failus, todėl katalogas sudaro medį, kurį galima naršyti nuo šaknies žemyn.

  • Lentelė – Iceberg lentelė, kurios schemą galima peržiūrėti, eilutes – užklausti po vieną JSON formatu arba eksportuoti dideliais kiekiais NDJSON, JSON, CSV, Excel ar Parquet formatu.

  • Failas – saugomas objektas (PDF, paveikslėlis, archyvas ir kt.), pateikiamas tiesiai iš objektų saugyklos.

namespaces
  • 111958286Higienos institutas
    • mirusiuju_toksikologinis_rezultatasschemaužklausaeksportas
    • gimimasschemaužklausaeksportas
    • daugiau lentelių
    • report.pdfatsisiuntimas

Ką galima daryti

ParametrasTipasAprašymas
Gauti šaknies vardų erdvesGET /namespaceslistNamespaces →
Naršyti vieną vardų erdvęGET /namespaces/{namespace}getNamespace →
Peržiūrėti lentelės schemą.../tables/{table}/schemagetTableSchema →
Skaityti eilutes JSON formatuPOST .../tables/{table}/queryqueryTable →
Eksportuoti lentelęPOST .../tables/{table}/exportexportTable →
Atsisiųsti failą.../files/{fileName}downloadFile →

Greitas startas

Gaukite šaknies vardų erdves

GET/namespaces
curl 'https://api.dataportal.gov.lt/namespaces'
{ "success": true, "data": { "namespaces": ["111958286", "188774975", "…"] } }

Įeikite į vardų erdvę

Pamatysite jos antrines vardų erdves, lenteles ir failus.

curl 'https://api.dataportal.gov.lt/namespaces/111958286'
{
  "success": true,
  "data": {
    "current_namespace": "111958286",
    "child_namespaces": [],
    "tables": ["mirusiuju_toksikologinis_rezultatas", "gimimas", "…"],
    "files": []
  }
}

Peržiūrėkite lentelės schemą

Sužinokite stulpelių pavadinimus ir tipus prieš užklausą.

curl 'https://api.dataportal.gov.lt/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/schema'

Užklauskite eilutes

Siųskite JSON kūną, prašydami pirmų 5 eilučių, naujausios viršuje, paliekant kelis stulpelius:

curl -X POST 'https://api.dataportal.gov.lt/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/query' \
  -H 'Content-Type: application/json' \
  -d '{"limit":5,"sort":"-mirties_metai","select":"lytis,mirties_metai,pavadinimas"}'
{ "data": [ /* … 5 eilutės … */ ], "total": 22143, "total_pages": 4429, "current_page": 1 }

Eksportuokite dideliais kiekiais

Kai norite viso rezultatų rinkinio kaip failo, o ne puslapiuoto JSON – eksporto galinis taškas priima tokį patį kūną ir format užklausos parametrą:

curl -L -o toksikologija.ndjson \
  -X POST 'https://api.dataportal.gov.lt/namespaces/111958286/tables/mirusiuju_toksikologinis_rezultatas/export?format=ndjson' \
  -H 'Content-Type: application/json' \
  -d '{}'

Atsakymo formatas

Katalogo ir schemos galiniai taškai savo turinį įvynioja į { success, data } struktūrą. Užklausos galinis taškas skiriasi – jis grąžina eilutes ir poslinkiu grįstus puslapiavimo metaduomenis, be success apvalkalo:

{ "success": true, "data": { "…": "…" } }
{ "data": [ /* eilutės */ ], "total": 22143, "total_pages": 4429, "current_page": 1 }

Neapdorotas baitų srautas – NDJSON / JSON / CSV / Parquet arba paties failo turinio tipas – o ne JSON.

Klaidose pateikiamas error_code ir žinutė. Tikslias struktūras ir būsenos kodus (400, 404, 502, 503, 504) rasite skiltyje Klaidos.

Kur toliau

Taip pat žiūrėkite

Kaip vertinate šį puslapį?