wrote out an API spec
This commit is contained in:
parent
8dbd2b88fd
commit
2050379bbb
1 changed files with 81 additions and 0 deletions
81
src/api_spec.md
Normal file
81
src/api_spec.md
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
# API spec for communicating between the frontend and the backend
|
||||||
|
|
||||||
|
## List of routes
|
||||||
|
- `/routes`
|
||||||
|
- `/routes/{id}`
|
||||||
|
- `/stops/{id}`
|
||||||
|
- `/path?lat={lattitude}&lon={longitude}&time={unix_epoch}`
|
||||||
|
|
||||||
|
|
||||||
|
## `/routes`
|
||||||
|
being a json list of urls to each of the available routes of the app, probably won't be used for core functionality but it'll be trivial to implement so might as well
|
||||||
|
|
||||||
|
## `/routes/{id}`
|
||||||
|
json object describing a route, I'm planning on this having an infinite cache time, if a route changes a new id will be made for the route after the change
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"_links":{
|
||||||
|
"self":{
|
||||||
|
"href":"https://$base_domain/routes/{id}"
|
||||||
|
},
|
||||||
|
// stops in order of when the bus reaches them
|
||||||
|
"stops": [{
|
||||||
|
"href":"https://$base_domain/stops/{id}",
|
||||||
|
"lattitude":{lattitude},
|
||||||
|
"longitude":{longitude}
|
||||||
|
},
|
||||||
|
...
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"polyline": "whatever the route's polyline is"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## `/stops/{id}`
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"_links":{
|
||||||
|
"self":{
|
||||||
|
"href":"https://$base_domain/stops/{id}"
|
||||||
|
},
|
||||||
|
// routes that make use of the stop in arbitrary order
|
||||||
|
"routes": [
|
||||||
|
{
|
||||||
|
"href":"https://$base_domain/routes/{id}",
|
||||||
|
"polyline": "{polyline}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
"lattitude": {lattitude},
|
||||||
|
"longitude": {longitude}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`/path?lat={lattitude}&lon={longitude}&time={unix_epoch}`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"_links":{
|
||||||
|
"self":{
|
||||||
|
"href": "https://$base_domain/path?lat={lattitude}&lon={longitude}&time={unix_epoch}"
|
||||||
|
}
|
||||||
|
"path":[
|
||||||
|
{
|
||||||
|
"route":{
|
||||||
|
"href":"https://$base_domain/routes/{id}",
|
||||||
|
"polyline": "{polyline}"
|
||||||
|
},
|
||||||
|
"enter_bus":{
|
||||||
|
"href":"https://$base_domain/stops/{id}",
|
||||||
|
"lattitude": {lattitude},
|
||||||
|
"longitude": {longitude}
|
||||||
|
},
|
||||||
|
"exit_bus":{
|
||||||
|
"href":"https://$base_domain/stops/{id}",
|
||||||
|
"lattitude": {lattitude},
|
||||||
|
"longitude": {longitude}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in a new issue