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:
| Parametras | Tipas | Aprašymas |
|---|---|---|
Vardų erdvė | 111958286 | Duomenis skelbianti organizacija (Higienos instituto įmonės kodas). |
Lentelė | mirusiuju_toksikologinis_rezultatas | 22 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ų.
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"}'| lytis | amziaus_grupe | mirties_metai | pavadinimas | mirties_priezastis |
|---|---|---|---|---|
| Moteris | 65_69 | 2021 | Etanolis (etilo alkoholis) | Kita |
| Moteris | 65_69 | 2018 | Karboksihemoglobinas | Atsitiktiniai 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.
111958286- mirusiuju_toksikologinis_rezultatasschemaužklausaeksportas
- gimimasschemaužklausaeksportas
- daugiau lentelių
- report.pdfatsisiuntimas
Ką galima daryti
| Parametras | Tipas | Aprašymas |
|---|---|---|
Gauti šaknies vardų erdves | GET /namespaces | listNamespaces → |
Naršyti vieną vardų erdvę | GET /namespaces/{namespace} | getNamespace → |
Peržiūrėti lentelės schemą | .../tables/{table}/schema | getTableSchema → |
Skaityti eilutes JSON formatu | POST .../tables/{table}/query | queryTable → |
Eksportuoti lentelę | POST .../tables/{table}/export | exportTable → |
Atsisiųsti failą | .../files/{fileName} | downloadFile → |
Greitas startas
Gaukite šaknies vardų erdves
GET/namespacescurl '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
Sąvokos
Vardų erdvės, lentelės, failai, Iceberg schemos ir momentinės kopijos.
Užklausos į lenteles
select, filter, sort ir poslinkio puslapiavimas – su tikra gramatika.
Duomenų atsisiuntimas
NDJSON / JSON / CSV / Excel / Parquet išvestis per eksporto galinį tašką.
Pavyzdžiai
Kopijuojami sprendimai: skaičiuoti, filtruoti, puslapiuoti, eksportuoti.
Klaidos
Būsenos kodai ir API grąžinamų klaidų struktūros.
Taip pat žiūrėkite
Kaip vertinate šį puslapį?