Kaip naudoti atvirus duomenis ir nemokamus API kuriant savo pirmąją technologijų naujienų agregavimo programėlę

Pradžia: kodėl tai geriau nei dar vienas „Hello World”

Jei jau išmokai parašyti savo pirmąją funkciją ir pradedi galvoti, ką daryti toliau – naujienų agregatorius yra vienas geriausių projektų, kurį gali pasidaryti. Ne todėl, kad tai lengva. O todėl, kad tai realu. Tu sukuri kažką, ką iš tikrųjų naudosi. Kažką, ką gali parodyti draugui ar potencialiam darbdaviui ir pasakyti: „Žiūrėk, tai veikia.”

Technologijų naujienų agregatorius reiškia, kad programa automatiškai surenka straipsnius iš skirtingų šaltinių ir juos atvaizduoja vienoje vietoje. Skamba paprastai – ir iš esmės taip yra. Bet kelias nuo idėjos iki veikiančio produkto išmoko daugiau nei bet koks kursas.

Atvirų duomenų ekosistema – didžiulis nemokamas bufetas

Internete yra daugybė nemokamų API, kurie laukia, kol kas nors juos panaudos. Technologijų naujienų kontekste labiausiai verta žiūrėti į kelis:

NewsAPI – tikriausiai populiariausias pasirinkimas pradedantiesiems. Nemokamas planas leidžia gauti iki 100 užklausų per dieną, filtruoti pagal raktažodžius, šalį ar kategoriją. Registracija trunka dvi minutes, API raktas ateina į el. paštą iš karto.

RSS srautai – techniškai tai ne API, bet atvirų duomenų klasika. TechCrunch, Wired, Hacker News – visi turi RSS. Python biblioteka feedparser leidžia juos nuskaityti per kelias eilutes kodo. Jokios registracijos, jokių apribojimų.

Hacker News API – visiškai nemokamas, be jokių limitų, oficialiai palaikomas. Grąžina naujausias istorijas, komentarus, balus. Puikus šaltinis, jei tavo auditorija – programuotojai.

Atvirų duomenų portalai kaip data.gov ar Europos Sąjungos data.europa.eu labiau tinka kitiems projektams, bet verta žinoti, kad jie egzistuoja – ateityje pravers.

Kaip tai sujungti: nuo užklausos iki ekrano

Nesvarbu, ar renkiesi Python, JavaScript ar ką nors kita – logika ta pati. Programa daro tris dalykus:

Pirma, paima duomenis iš API arba RSS. Python atveju tai atrodo maždaug taip:

import requests
response = requests.get("https://newsapi.org/v2/top-headlines?category=technology&apiKey=TAVO_RAKTAS")
data = response.json()

Antra, apdoroja – išfiltruoja tai, kas nereikalinga, suformatuoja datą, galbūt pašalina dublikatus iš skirtingų šaltinių.

Trečia, atvaizduoja – gali būti paprasta HTML lentelė, gali būti React komponentas, gali būti tiesiog terminalas. Pradžiai svarbiausia, kad veiktų.

Vienas praktinis patarimas: nekurk sudėtingos duomenų bazės iš karto. Pradžiai pakanka JSON failo arba net paprastos kintamųjų struktūros atmintyje. Sudėtingumą galima pridėti vėliau – kai žinosi, kad projektas tau iš tikrųjų įdomus.

Klaidos, kurias padarysi (ir tai normalu)

API limitai – pirmoji kliūtis. Nemokamas planas turi ribas, ir tu jas pasieki greičiau nei tikėjaisi, ypač jei testuoji aktyviai. Sprendimas paprastas: kešuok atsakymus. Išsaugok gautus duomenis lokaliai ir atnaujink juos tik kas 15–30 minučių, o ne kiekvieną kartą, kai kas nors atidaro programėlę.

API rakto saugumas – antra problema. Naujokai dažnai įkelia kodą į GitHub su raktu viduje. Naudok .env failus ir biblioteką python-dotenv. Tai ne paranoja – tai elementari higiena.

Skirtingi šaltiniai grąžina duomenis skirtingais formatais. Vienas API datos lauką vadina publishedAt, kitas – pub_date, trečias – timestamp. Normalizavimo funkcija, kuri viską paverčia vienodu formatu, sutaupo daug galvos skausmo.

Kai tai veikia – ką daryti toliau

Veikianti bazinė versija yra tik pradžia. Čia prasideda įdomiausia dalis – tu gali pridėti funkcijas, kurios tau pačiam naudingos. Filtravimas pagal raktažodžius. El. pašto pranešimai apie svarbias naujienas. Sentimentų analizė – ar straipsnis pozityvus, ar negatyvus. Paieška. Kategorijos.

Kiekviena nauja funkcija – tai naujas įgūdis. Ir skirtingai nuo pratimų iš knygos, čia matai, kodėl tai reikalinga.

Tai ne projektas – tai tavo įrankis

Geriausia, kas gali nutikti su šiuo projektu – kad pradėsi jį naudoti kasdien. Kad rytą atidaręs programėlę pamatysi naujienas, kurios tau svarbios, o ne tas, kurias kažkas kitas nusprendė parodyti. Tai ir yra esmė – ne technologija dėl technologijos, o sprendimas, kuris veikia tau.

Atvirų duomenų ir nemokamų API ekosistema leidžia tai padaryti be jokių investicijų. Tik laikas, smalsumas ir noras pabandyti. O kai pirmą kartą pamatysi, kaip tavo kodas realiu laiku paima naujienas iš interneto ir jas atvaizduoja – tas jausmas niekur nedingsta. Jis tik skatina eiti toliau.