API Specification
Contributors: Alicia Wang, Conner Swenberg
Values wrapped in < >
are placeholders for what the field values should be. Also be sure to read the request route carefully when you implement it.
NOTE ABOUT ERROR RESPONSES
The server should return an error response for:
POST
requests, if the user does not supply one of the fields in the body (e.g. name, username, etc.) with a status code of 400 (bad request)GET
,POST
andDELETE
requests, if the requested resource in the URL does not exist, with a status code of 404 (not found)
Expected Functionality
Get all users
GET
/api/users/
<HTTP STATUS CODE 200>
{
"users": [
{
"id" 1,
"name": "Conner",
"username": "cswenberg",
},
{
"id": 2,
"name": "Alicia",
"username": "aawang",
},
...
]
}
Make sure not to include each user’s balance when getting all users - this would be a confidentiality issue in real life!
Create a user
POST
/api/users/
{
"name": "Raahi Menon",
"username": "raahi014",
"balance": <OPTIONAL INTEGER>
}
<HTTP STATUS CODE 201>
{
"id": <ID>
"name": "Raahi Menon",
"username": "raahi014",
"balance": <USER INPUT or DEFAULT TO 0 IF NOT PROVIDED>
}
If the user does not supply a name, a username, or both, you should return a failure response with a descriptive error message
Get a specific user
GET
/api/user/{id}/
<HTTP STATUS CODE 200>
{
"id": <ID>,
"name": <STORED NAME FOR USER {id}>,
"username": <STORED USERNAME FOR USER {id}>,
"balance": <STORED BALANCE FOR USER {id}>
}
Delete a specific user
DELETE
/api/user/{id}/
<HTTP STATUS CODE 200>
{
"id": <ID>,
"name": <NAME OF DELETED USER WITH ID {id}>,
"username": <USERNAME OF DELETED USER WITH ID {id}>,
"balance": <BALANCE OF DELETED USER WITH ID {id}>
}
Send money from one user to another
POST
/api/send/
{
"sender_id": <USER INPUT>,
"receiver_id": <USER INPUT>,
"amount": <USER INPUT>
}
<HTTP STATUS CODE 200>
{
"sender_id": <USER INPUT FOR SENDER>,
"receiver_id": <USER INPUT FOR RECEIVER>,
"amount": <USER INPUT FOR AMOUNT>
}
A sender should not be able to overdraw their balance! If a request comes in where the sender sends more money than they have, you should return an error with 400 status code.
Last updated
Was this helpful?