Pontus regner ut pris­indeksen på julesaft fra Finn

Bruker åpne API-er på Finn.no, som Finn mener ikke er åpne i det hele tatt.

Pontus Edvard Aurdal jobber vanligvis med IoT i Telenor, men på kveldene er han over snittet opptatt av saft. - Jeg rakk ikke å eksponere meg til FJB-markedet, så det fikk bli en "Sassy Pink Lemonade", forteller han om bildet uten Julebrus-saft. 📸: Privat
Pontus Edvard Aurdal jobber vanligvis med IoT i Telenor, men på kveldene er han over snittet opptatt av saft. - Jeg rakk ikke å eksponere meg til FJB-markedet, så det fikk bli en "Sassy Pink Lemonade", forteller han om bildet uten Julebrus-saft. 📸: Privat Vis mer

En dødelig pandemi raser, Amerikas demokrati trues, klimakrisen nærmer seg - og den nye Fun Light-safta med smak av julebrus er visstnok utsolgt over hele landet.

Ved siden av alle Playstation 5-annonsene på hele Norges svartebørs, finner du nå derfor haugevis av julebrussaft-annonser på Finn.no.

- I videolunsjene har vi en kollega, Tuva Ramsøe Bredesen, som er over gjennomsnittet glad i saft, og stadig anmelder forskjellige smaker, forteller IoT-utvikler Pontus Edvard Aurdal i Telenor til kode24.

- Det var etter at denne spesielle julebrussafta tok slutt i butikken og det begynte komme meldinger om at den var å finne på Finn.no, at vi begynte å spøke om FJB-verdien; altså verdien av en flaske Fun Light Julebrus, som en valuta, fortsetter han.

Som sagt, så gjort - Aurdal har nå laga FJB-indeksen. Med Finn-data han kanskje ikke skulle hatt.

Slik ser den ut, FJB-indeksen, med utviklingen av prisen på julebrussaft over tid. 📸: Ole Petter Baugerød Stokke
Slik ser den ut, FJB-indeksen, med utviklingen av prisen på julebrussaft over tid. 📸: Ole Petter Baugerød Stokke Vis mer

Saftige priser

FJB-indeksen viser gjennomsnittsprisen på en flaske Fun Light Julebrus på Finn, og ikke minst hvordan prisen utvikler seg over tid, så julebrus-saft-spekulanter kan kjøpe lavt og selge høyt.

På skrivende tidspunkt ligger det 41 flasker ute, ifølge FJB-indeksen, og snittprisen er på svimlende 920 kroner - opp fra 794 for bare få timer siden.

- Jeg vet ikke om dette er representativt for markedsprisen, men det gir i hvert fall en indikator på hva folk selger denne ettertraktede saften for på privatmarkedet. Det er også en del annonser som går på desilitermål, som er vanskelig å skille ut i datamengden, så man må nok ta dette med et glass saft, gliser Aurdal.

- Har du selv noen kommersielle interesser i julebrussaft-bransjen? Enten som hemmelig kontraktør for markedsføringsapparatet til Fun Light eller som investor i saftflaskene?

- Nei - det har jeg ikke. Selv om julebrusmarkedet begynner å se rimelig saftig ut nå.

Puttes i en AWS-bøtte

Prisene hentes hver halvtime, gjennom å søke etter flaskene gjennom Finn sine eksponerte API-er og hente ut prisene på dem. Dette gjør Aurdal med en Lambda-funksjon på AWS, skrevet i Node.js.

Denne funksjonen regner også ut snittprisen, som lagres i en Amazon S3-bøtte, og som frontenden til applikasjonen kan hente for å tegne grafen.

- I AWS kan man bruke CloudWatch Events og definere enten en cron-syntax eller rate på hvor ofte eventet genereres, og som vil invokere Lambda-funksjonen, forteller Aurdal til kode24.

- Jeg bruker Serverless Framework for å enkelt håndtere Infrastructure as Code (IaC). Da kan jeg versjonshåndtere både min Lambda-funksjon og S3-bøtte, samt kildekoden i selve Lambda-funksjonen.

Her har kode24 gjort et kall på Finn.no sine API-er, som ligger åpne. 📸: Ole Petter Baugerød Stokke
Her har kode24 gjort et kall på Finn.no sine API-er, som ligger åpne. 📸: Ole Petter Baugerød Stokke Vis mer

Åpne API-er..?

"Regelmessig, systematisk eller kontinuerlig innhenting, lagring, indeksering, distribusjon og all annen form for sammenstilling av data tillates ikke uten eksplisitt, skriftlig tillatelse" skriver Finn i bunnen av alle nettsider.

API-kallene FJB-indeksen gjør er basert på hva Aurdal ser at Finn.no selv gjør. Disse API-ene ligger åpent tilgjengelig - prøv selv. Aurdal skal likevel ha bedt Finn om tillatelse til å lage prisindeksen sin, men har foreløpig ikke fått noe svar.

Det får kode24 - om enn bare i form av en kort kommentar, foreløpig.

«Vi har måttet si nei til stort sette alle, ettersom vi i dag ikke har noe åpent API.»

- API-et til FINN er ikke åpent, og er kun tilgjengelig for firmakunder som vil ha tilgang til sine egne data. Det er da en betalt tjeneste, forteller integrasjonssjef Geir Borch i Finn til kode24.

- Vi får mange henvendelser fra studenter og andre som har lyst til å lage tjenester eller bare gjøre noe kult, men vi har måttet si nei til stort sette alle, ettersom vi i dag ikke har noe åpent API, fortsetter han.

Dermed kan det være at Finn setter ned foten for saftindeksen til Aurdal, også. Selv om API-et applikasjonen hans bruker altså ligger åpent i dag, i motsetning til API-ene Finn selger, som Borch trolig sikter til. Om det er greit å bruke de eksponerte API-ene får ikke kode24 noe klart svar på.

- Web-skraping er jo alltid litt i gråsona, og man bør alltid høre med vedkommende før man eventuelt gjør det. Det viktige for meg her, er at jeg ikke behandler eller lagrer personopplysninger, og at jeg ikke overbelaster systemet, påpeker Aurdal.

Vue og Highcharts

Lovlig bruk av åpen data eller ikke - prisindeksen på julebrussaft ligger på skrivende tidspunkt fortsatt ute. Og kildekoden kan du også lese gjennom.

- Hvorfor tegner du sida med Vue?

- Vue, React, Angular - the good, the bad, the ugly. Neida, begynner Aurdal.

- Vue er rammeverket jeg har jobbet mest med, og sammen med gode komponentrammeverk som Vuetify kan man sette sammen PoCs veldig fort. Dessuten er denne applikasjonen ganske simpel, så man hadde nok klart seg fint uten et JavaScript-rammeverk i det hele tatt.

- Hvilket bibliotek bruker du for å gjøre selve uttegninga av grafen?

- Highcharts. Dokumentasjonen er bra, og det tilbys svært mange graftyper, forteller utvikleren om den norske graf-løsningen.

- Det jeg ofte opplever som utfordrende, er å oppdatere grafen når nye data skal legges til dynamisk. Heldigvis finnes det flinke folk som bygger Vue-komponenter, og som lar en enkelt bruke grafbibliotekene i dine prosjekter på en fornuftig måte. Men det er svært mange konfigurasjonsparametere, så det må pirkes litt før det ser fint ut.