Skip to content

Instantly share code, notes, and snippets.

@hannahhoward
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hannahhoward/67119ad9e434ec52eef0 to your computer and use it in GitHub Desktop.
Save hannahhoward/67119ad9e434ec52eef0 to your computer and use it in GitHub Desktop.
API documentation
Open to all
POST /token
params:
email: users email
password: users password
response:
(with successful email + password)
{
"access_token": ....
"token_type": 'bearer'
}
POST /user
creates a user
params:
{ 'user': {
'first_name': ...
'last_name': ...
'email': ...
'password': ...
'password_confirmation': ...
}
}
response:
on successful create:
status: 201
body: {
'user': {
'first_name': ...
'last_name': ...
'email': ...
}
}
on failed create:
status: 422
body (example): {
'email': 'is invalid'
}
Requires Access Token for all listed past this point
GET /user
get logged in user's info
response: {
'user': {
'first_name': ...
'last_name': ...
'email': ...
}
}
PUT or PATCH /user
update logged in user info
params:
{ 'user': {
'first_name': ...
'last_name': ...
'email': ...
'password': ...
'password_confirmation': ...
}
}
response:
on successful update:
status: 204
no body
on failed update:
status: 422
body (example): {
'email': 'is invalid'
}
DELETE /user
delete currently logged in user
response:
status: 200
body: none
POST /routes
create a new route
params:
{
"route": {
"start_address": ... or
"start_latitude": ... and
"start_longitude": ...
"end_address": ... or
"end_latitude": ... and
"end_longitude": ...
}
}
sample_response:
{
"route": {
"id": 16,
"start_latitude": 34.0128358,
"start_longitude": -118.495338,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false,
"user_ids": [1],
"nearby_route_ids": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
},
"users": [{
"id": 1,
"first_name": null,
"last_name": null,
"email": "hannah@techgirlwonder.com"
}],
"nearby_routes": [{
"id": 1,
"start_latitude": 34.0128358,
"start_longitude": -118.495338,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false,
"start_range": 0.0,
"end_range": 0.0,
"angle_diff": 1.27222187258541e-14
}, {
"id": 2,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.0,
"angle_diff": 0.948937046135892
}, {
"id": 3,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 4,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 5,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 6,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 7,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 8,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 9,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 10,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 11,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 12,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 13,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 14,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}, {
"id": 15,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false,
"start_range": 0.178333607194254,
"end_range": 0.426129341966272,
"angle_diff": 2.54066395003932
}]
}
GET /routes/:id
gets information on an existing route
sample response:
{
"users": [{
"id": 1,
"first_name": null,
"last_name": null,
"email": "hannah@techgirlwonder.com"
}],
"nearby_routes": [{
"id": 1,
"start_latitude": 34.0128358,
"start_longitude": -118.495338,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false
}, {
"id": 2,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false
}, {
"id": 16,
"start_latitude": 34.0128358,
"start_longitude": -118.495338,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false
}, {
"id": 4,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 5,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 6,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 7,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 8,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 9,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 10,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 11,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 12,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 13,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 14,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 15,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}, {
"id": 3,
"start_latitude": 34.01542300000001,
"start_longitude": -118.495301,
"end_latitude": 34.0395309,
"end_longitude": -118.3087276,
"in_progress": false,
"finished": false
}],
"route": {
"id": 17,
"start_latitude": 34.0128358,
"start_longitude": -118.495338,
"end_latitude": 34.043039,
"end_longitude": -118.314843,
"in_progress": false,
"finished": false,
"user_ids": [1],
"nearby_route_ids": [1, 2, 16, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3]
}
}
PUT /routes/:id
starts a route (so it's in progress) or finishes a route (so it no longer shows in search results)
params: {
"route": {
"in_progress": true
"finished": false
}
}
response:
successful update
status 204, no content
unsuccessful update
errors in json, status of unprocessable_entity
POST /routes/:id/points
add a new tracking point for a route that is in progress (this will only work if route is in progress)
params:
{
"point": {
"latitude": ...
"longitude": ...
}
}
response:
successful create
status 201
body
{
"point": {
"latitude": 34.0480355,
"longitude": -118.34141,
"route_id": 17
}
}
not created
status 422 (unprocessable entity)
errors in json
@sherylj
Copy link

sherylj commented Jun 1, 2014

To Create User from Terminal:
curl -X POST -H "Content-Type:application/json" -d '{ "user": { "first_name": "YourName", "last_name": "Last name", "email": "email", "password": "enter your password", "password_confirmation": "enter password again"}}' http://domain/user/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment