Rajapinta

Turun opiskelijaravintoloiden ruokalistat koneluettavassa muodossa. Kaikki reitit ovat GET eivätkä vaadi avainta.

Takaisin ruokalistoihin · Sama Markdownina · Luettelo JSONina

Yhteiset asiat

ParametriMerkitys
langfi tai en. Vaikuttaa annosten nimiin ja viikonpäiviin.
pretty1 muotoilee JSONin luettavaksi.

Jokaisessa vastauksessa on Access-Control-Allow-Origin: *, joten rajapintaa voi kutsua suoraan selaimesta. JSON-vastauksissa on aina kentät generated ja lang.

Rivin kentät

Reitit /api/day, /api/search ja /api/menus.csv palauttavat samanlaisia rivejä, joten yksi jäsennin riittää niille kaikille.

KenttäMerkitys
datepäivä muodossa YYYY-MM-DD
dayviikonpäivän nimi valitulla kielellä
hourslounasaika tai null
restaurantravintolan nimi
slugravintolan tunnus osoitteissa
campuskampus tai ryhmä
sectionlinjasto, esim. LOUNAS
pricehinta sellaisena kuin syöte sen antaa
dishannoksen nimi
tagsmerkinnät taulukkona, esim. ["G","L","Veg"]
allergensallergeenit tai null jos syöte ei niitä julkaise

Ruokalistat

/api/menus

Koko viikko kaikilta ravintoloilta, jäsennettynä.

ParametriMerkitysOletus
langfi tai enfi

http://ruoka.luhte.de/api/menus?lang=fi kokeile

Vastaus { updated, lang, campusOrder, restaurants: [ { name, campus, url, lat, lon, cost, days: [ { key, day, label, hours, sections: [ { name, price, items: [ { name, tags, allergens } ] } ] } ] } ] }

/api/day

Yksi päivä litteinä riveinä. Helpoin kun haluat vain tämän päivän ruoat.

ParametriMerkitysOletus
pvmYYYY-MM-DDtänään
merkkivain tämän merkinnän annokset, esim. Vegkaikki
ravintolarajaa yhteen ravintolaan nimellä tai slugillakaikki
langfi tai enfi

http://ruoka.luhte.de/api/day?pvm=2026-10-06&merkki=Veg kokeile

Vastaus { date, heading, rows: [ rivi ] }

/api/restaurant/{slug}

Yhden ravintolan koko viikko. Slugin saat reitistä /api/restaurants.

ParametriMerkitysOletus
langfi tai enfi

http://ruoka.luhte.de/api/restaurant/galilei kokeile

Vastaus { updated, restaurant } tai 404 jos slugia ei ole

/api/menus.csv

Samat rivit CSV-taulukkona. Avautuu suoraan taulukkolaskentaan.

ParametriMerkitysOletus
pvmrajaa päiväänkoko viikko
merkkirajaa merkintäänkaikki
ravintolarajaa ravintolaankaikki
langfi tai enfi

http://ruoka.luhte.de/api/menus.csv?merkki=Veg kokeile

Vastaus CSV, otsikkorivi: date,day,hours,restaurant,slug,campus,section,price,dish,tags,allergens

Haku ja koonnit

/api/dishes

Viikon eri annokset ja monessako ravintolassa kukin on.

ParametriMerkitysOletus
merkkirajaa merkintäänkaikki
pvmrajaa päiväänkoko viikko
langfi tai enfi

http://ruoka.luhte.de/api/dishes?merkki=Veg kokeile

Vastaus { count, dishes: [ { dish, tags, count, restaurants } ] }

/api/tags

Käytössä olevat merkinnät ja niiden esiintymismäärät.

ParametriMerkitysOletus
langfi tai enfi

http://ruoka.luhte.de/api/tags kokeile

Vastaus { tags: [ { tag, count } ] }

Ravintolat, aukiolo ja sijainti

/api/restaurants

Ravintolat, koordinaatit ja tunnisteet ilman ruokalistoja. Kevyt ja harvoin muuttuva.

ParametriMerkitysOletus
langfi tai enfi

http://ruoka.luhte.de/api/restaurants kokeile

Vastaus { updated, campusOrder, restaurants: [ { name, slug, campus, url, lat, lon, costNumber, days, stale, error } ] }

/api/open

Mitkä ravintolat ovat auki annettuna kellonaikana, ja montako minuuttia sulkemiseen.

ParametriMerkitysOletus
kloHH:MMnyt
pvmYYYY-MM-DDtänään
langfi tai enfi

http://ruoka.luhte.de/api/open?klo=12:30 kokeile

Vastaus { date, at, open: [...], closed: [...], unknown: [...] } jokainen { name, slug, hours, opensAt, closesAt, open, minutesLeft }

/api/nearest

Lähimmät ravintolat linnuntietä. Sodexon aukioloaikaa ei ole syötteessä, joten sen open on null.

ParametriMerkitysOletus
latleveysaste, pakollinenei mitään
lonpituusaste, pakollinenei mitään
limitmontako palautetaan5
auki1 = vain nyt auki olevat0
pvmYYYY-MM-DDtänään

http://ruoka.luhte.de/api/nearest?lat=60.4557&lon=22.2856&limit=3 kokeile

Vastaus { from, date, restaurants: [ { name, slug, lat, lon, meters, hours, open } ] }

Historia

/api/history

Milloin ja missä annosta on ollut tarjolla. Kertyy sitä mukaa kun palvelin hakee listoja.

ParametriMerkitysOletus
hakuhakusanatei mitään
limitenintään näin monta osumaa50

http://ruoka.luhte.de/api/history?haku=lohikeitto kokeile

Vastaus { query, count, hits: [ { date, restaurant, dish, tags } ] }

/api/stats

Historian tilastot: yleisimmät annokset ja vegaanivaihtoehtojen osuus ravintoloittain.

Ei parametreja.

http://ruoka.luhte.de/api/stats kokeile

Vastaus { days, firstDay, lastDay, dishes, uniqueDishes, top: [...], restaurants: [...] }

Syötteet ja teksti

/tanaan

Päivän lista pelkkänä tekstinä. Sopii terminaaliin ja skripteihin.

ParametriMerkitysOletus
pvmYYYY-MM-DDtänään
merkkirajaa merkintäänkaikki
ravintolarajaa ravintolaankaikki
langfi tai enfi

http://ruoka.luhte.de/tanaan?merkki=Veg kokeile

Vastaus text/plain

/rss

Viikon listat RSS-syötteenä, yksi kohta per päivä.

ParametriMerkitysOletus
merkkirajaa merkintäänkaikki
ravintolarajaa ravintolaankaikki
langfi tai enfi

http://ruoka.luhte.de/rss?merkki=Veg kokeile

Vastaus application/rss+xml

/ical

Viikon listat kalenteritapahtumina. Aukioloaika tulee tapahtuman kestoksi jos se tiedetään.

ParametriMerkitysOletus
merkkirajaa merkintäänkaikki
ravintolarajaa ravintolaankaikki
langfi tai enfi

http://ruoka.luhte.de/ical?ravintola=galilei kokeile

Vastaus text/calendar

Palvelin

/api

Rajapintojen luettelo koneluettavassa muodossa.

Ei parametreja.

http://ruoka.luhte.de/api kokeile

Vastaus { description, common, endpoints, sources }

/docs

Tämä dokumentaatio.

Ei parametreja.

http://ruoka.luhte.de/docs kokeile

Vastaus text/html

/docs.md

Sama dokumentaatio Markdownina, esimerkiksi repoon tallennettavaksi.

Ei parametreja.

http://ruoka.luhte.de/docs.md kokeile

Vastaus text/markdown

/api/health

Palvelimen tila: välimuistin ikä, onnistuneet ravintolat, seuraava taustapäivitys.

Ei parametreja.

http://ruoka.luhte.de/api/health kokeile

Vastaus { ok, uptimeSeconds, upstream, history, tiles, refreshAt, nextRefresh, languages }

/api/refresh

Vanhentaa välimuistin. Seuraava lataus hakee tuoreet listat.

Ei parametreja.

http://ruoka.luhte.de/api/refresh kokeile

Vastaus text/plain

/tiles/{z}/{x}/{y}.png

Karttalaatta, rajattu Turkuun ja välimuistitettu levylle.

Ei parametreja.

http://ruoka.luhte.de/tiles/13/4602/2358.png kokeile

Vastaus image/png, 404 rajauksen ulkopuolella