Osoitepalvelu (search.vikvek.fi)
Osoitepalvelu — search.vikvek.fi
search.vikvek.fi on osoitehakupalvelu, jota muut järjestelmämme käyttävät. Kirjoita osa kadun nimestä ja saat kadut; lisää talon numero ja saat rakennukset; pyydä yhtä niistä ja saat koordinaatit.
Palvelu on rakennettu Suomen avoimen rakennus- ja osoiteaineiston päälle (Ryhti / SYKE, CC BY 4.0) — noin 3,9 miljoonaa osoitetta. Aineisto on kansallista perustietoa: se on sama riippumatta siitä, mikä sovellus sitä kysyy — siksi se kuuluu omaksi palvelukseen eikä minkään yksittäisen sovelluksen sisään.
Mihin sitä käytetään
- Toimitusosoitteen syöttö, jossa asiakas ei voi kirjoittaa olematonta osoitetta
- Toimitusmaksun ja -matkan laskenta oikeista koordinaateista
- Kuljettajan navigointi oikean rakennuksen kohdalle
- Sama rajapinta kaikille projekteillemme — osoitelogiikkaa ei kirjoiteta uudestaan joka kerta
Miten se toimii
Rajapinnassa on kaksi päätepistettä: ehdotus (hakusanalla, halutessa käyttäjän sijaintiin painotettuna) ja haku (ehdotuksen tunnisteella, palauttaa tarkat tiedot ja koordinaatit).
Katuehdotusta ei tarkoituksella voi hakea koordinaateiksi. Kadun keskipiste voi olla satojen metrien päässä yhdestäkään rakennuksesta, ja siitä laskettu toimitusmaksu olisi hinta paikkaan, jossa asiakas ei asu. Sovelluksen kuuluu kysyä talon numero — ei arvata sitä.
Jokainen kutsu allekirjoitetaan (HMAC-SHA256, aikaleimalla rajattu ikkuna), ja jokaisella asiakassovelluksella on oma avaimensa ja oma kutsurajansa. Epäonnistunut tunnistautuminen saa aina saman vastauksen: se, kumpi puolisko meni väärin, jää palvelimen lokiin — arvailijaa ei auteta.
Tekniikka
- PHP + MariaDB, versioitu REST-rajapinta (
/api/v1/) - Aineisto tuodaan omaan tietokantaan hakua varten optimoituna
- HMAC-allekirjoitus, asiakaskohtainen kutsuraja ja täysi lokitus
- Automaattitestit + erillinen savutesti oikeaa palvelinta vasten