# Vsebinski kriterij NIK ## Raziskovanje API-ja ## OSNOVNA NALOGA Samostojno poiščite in raziskajte javni brezplačni API z vsaj 3 različnimi funkcionalnostmi. Dokumentirajte strukture klicev in prikazanje dostopa do JSON podatkov. Kar nekaj jih najdeš tu: https://github.com/public-apis/public-apis --- ## OCENJEVALNI KRITERIJI ### OCENA 2 (ZADOSTNO) **Vsi pogoji morajo biti izpolnjeni:** - [ ] Izbira javnega brezplačnega API-ja z vsaj 3 funkcionalnostmi - [ ] Predstavitev API-ja z opisom namena in možnosti - [ ] Prikazana struktura najmanj 2 različnih API klicev - [ ] Dokumentiran odgovor API-ja v JSON obliki - [ ] Demonstracija dostopa do posameznih podatkov iz JSON strukture ### OCENA 3 (DOBRO) **Vsi pogoji iz ocene 2 +:** - [ ] Uporaba FOR zanke za obdelavo več podatkov iz API-ja - [ ] Primer iteracije skozi seznam rezultatov - [ ] Prikaz vsaj 3 različnih API klicev - [ ] Filtriranje ali iskanje podatkov ### OCENA 4 (PRAV DOBRO) **Vsi pogoji iz ocene 3 +:** - [ ] Implementacija lastnih funkcij za delo z API-jem - [ ] Funkcija za pridobivanje podatkov - [ ] Funkcija za obdelavo/formatiranje podatkov - [ ] Error handling (obravnava napak pri klicih) ### OCENA 5 (ODLIČNO) **Vsi pogoji iz ocene 4 +:** - [ ] Poljubna kreativna nadgradnja: - Grafični prikaz podatkov - Shranjevanje podatkov v datoteko - Kombiniranje več API-jev - Uporabniški vmesnik z input funkcijami - Statistična analiza podatkov - Primerjava ali rangiranje rezultatov --- ## PRIMER PREDSTAVITVE API-ja ### 1. Osnovni opis API-ja ```markdown ## [Ime API-ja] **URL:** [povezava do API-ja] **Namen:** [kratka razlaga, kaj API omogoča] **Dokumentacija:** [povezava do uradno dokumentacijo] ### Glavne funkcionalnosti: 1. [Funkcionalnost 1] - [kratek opis] 2. [Funkcionalnost 2] - [kratek opis] 3. [Funkcionalnost 3] - [kratek opis] ``` ### 2. Strukture API klicev ```python # KLIC 1: [Opis kaj dela] # URL: [polna URL pot] odgovor1 = requests.get("[URL]") # KLIC 2: [Opis kaj dela] # URL: [polna URL pot] odgovor2 = requests.get("[URL]") # KLIC 3: [Opis kaj dela] # URL: [polna URL pot] odgovor3 = requests.get("[URL]") ``` ### 3. Primer JSON odgovora ```json { "primer": "json odgovora", "struktura": "podatkov", "ključi": ["seznam", "vrednosti"] } ``` ### 4. Dostopanje do podatkov ```python # Pretvorimo odgovor v Python objekt podatki = odgovor.json() # Dostopamo do posameznih podatkov vrednost1 = podatki["kljuc1"] vrednost2 = podatki.get("kljuc2", "Privzeta vrednost") # Prikažemo rezultate print(f"Rezultat: {vrednost1}") ``` --- ## TEHNIČNE ZAHTEVE - **Programski jezik:** Python (obvezno uporaba requests knjižnice) - **Dokumentacija:** Komentarji v kodi + README.md datoteka - **Struktura oddaje:** - `main.py` - glavna koda - `README.md` - opis projekta in predstavitev API-ja - Dodatne datoteke po potrebi ## OSNOVE DELA Z API-jem ### Uvoz knjižnice ```python import requests ``` ### Osnovni klic ```python odgovor = requests.get("URL_DO_API") if odgovor.status_code == 200: podatki = odgovor.json() print("Podatki uspešno pridobljeni!") else: print(f"Napaka: {odgovor.status_code}") ``` ### Varno dostopanje do podatkov ```python # Uporabi .get() za varno dostopanje vrednost = podatki.get("kljuc", "Privzeta vrednost") # Preveri obstoj ključa if "kljuc" in podatki: vrednost = podatki["kljuc"] ``` ## NASVETI ZA ISKANJE API-ja - Iščite "free public API" ali "no auth API" - Preverite, da ne potrebuje registracije ali API ključa - Testirajte API v brskalniku najprej - Preberite dokumentacijo za razumevanje strukture ## ROK ODDAJE **10.6.2025** --- *Opomba: Za dosego višje ocene morajo biti izpolnjeni VSI pogoji nižjih ocen.*