b659af9cb4bae2c14cd449f02b5eee4855f2bcb4
dijkstra-backend
Dijkstra is an app thas uses Dijkstra algorithm to display the shortest path between different cities in Belgium.
Deployed backend: https://dijkstra-backend.herokuapp.com/
API Documentation
Values required in
bold.
COUNTRIES countries
| field | data type | metadata |
|---|---|---|
| id | unsigned integer | primary key, auto-increments, generated by database |
| name | string |
Get countries list
GET /api/countries/:country_id
Response
A json object with a list of cities in the selected country name and id and country_id.
[
{
"id": 1,
"name": "bruges",
"country_id": 1
},
{
"id": 2,
"name": "antwerp",
"country_id": 1
},
{
"id": 3,
"name": "ghent",
"country_id": 1
},
]
CITIES cities
| field | data type | metadata |
|---|---|---|
| id | unsigned integer | primary key, auto-increments, generated by database |
| name | string | |
| country_id | unsigned integer | foreign key referencing countries.id |
Get cities list
GET /api/cities
Response
A json object with id, name and country_id.
{
"id": 1,
"name": 'bruges',
"country_id": 1
}
ROADS roads
| field | data type | metadata |
|---|---|---|
| id | unsigned integer | primary key, auto-increments, generated by database |
| start_city_id | string | required |
| end_city_id | string | required |
| distance | unsigned integer |
Get roads list
GET /api/roads
Response
A json object with id, start_city_id, 'end_city_idanddistance`.
{
"id": 1,
"start_city_id": 1,
"end_city_id": 3,
"distance": 50
}
Shortest Path cities
Get the shortest path between two cities and the total distance
GET /api/path
Request
Add the start_city_id and end_city_id as query strings to the url.
/api/path?start_city_id=2?end_city_id=9
Response
A json object composed of the path correctly ordered and the total distance.
{
"path": [
{
"id": 2,
"name": "antwerp"
},
{
"id": 4,
"name": "mechelen"
},
{
"id": 5,
"name": "brussels"
},
{
"id": 8,
"name": "liege"
},
{
"id": 7,
"name": "namur"
},
{
"id": 9,
"name": "arlon"
}
],
"distance": 337
}
Languages
JavaScript
100%