Un servizio web che ritorna le linee ATM vicino ad un determinato indirizzo.
L'applicazione è sviluppata in Java, con il supporto del build tool Maven. Non sono utilizzati framework particolari. Le funzionalità web sono esposte da questa libreria. Il punto di ingresso dell'applicazione è stops.calculator.App.
Alla partenza, l'applicazione espone l'endpoint /atm/stops (sulla porta: 4567). Dato in input un indirizzo, l'endpoint restituisce le fermate ATM nel raggio di 200 metri (max 10 risultati). L'indirizzo in input viene recuperato dalla query string della richiesta. L'output è in formato JSON (vedi esempio sotto).
Esempio di utilizzo (con indirizzo via Larga 26 Milano):
❯ curl -s "http://localhost:4567/atm/stops?address=via%20larga%2026%20Milano" | jq .
{
"stops": [
{
"code": "missori",
"description": "Missori",
"availableLines": [ "M3" ],
"position": { "lat": 45.4639037177197, lng": 9.18861101005318 }
},
{
"code": "11793",
"description": "Via Larga, 4 angolo Via S.Clemente",
"availableLines": [ "16", "24" ],
"position": { "lat": 45.462712945354, "lng": 9.19420965647107 }
}
]
}servizio esterno HERE Geocoding.
Le informazioni sulle linee ATM sono disponibili in modalità open-data. Sul sito del comune di Milano
è possibile ottenere la posizione per le fermate delle linee di superficie
e per linee della metropolitana.
L'implementazione proposta prevede di calcolare la distanza tra indirizzo e fermate ATM
usando la harvesine formula.
- per creare l'immagine eseguire "docker build -t atm-nearme ."
- per eseguire l'immagine lanciare "docker run -p 4567:4567 atm-nearme"