CS-Coursework/documentation/get_leaderboard.md

49 lines
1.2 KiB
Markdown

# Leaderboard API Endpoint
## GET `/api/leaderboard`
Returns the highest test data from each user as a JSON array. The data includes metrics such as username, words per minute (WPM), accuracy percentage, the time taken for the test, and the length of the test for a comprehensive overview of user performance.
## Request Parameters
- `username`: The name of the user.
- `wpm`: Words per minute, indicating the typing speed.
- `accuracy`: The accuracy of the user's typing, in percentage.
- `test_time`: The total time taken to complete the test, in seconds.
- `test_length`: The length of the test, typically measured in number of words.
## Responses
- `200 OK`: Successfully retrieves the leaderboard data.
- `404 Not Found`: Indicates that the leaderboard was not found.
- `500 Internal Server Error`: Indicates an issue with accessing the database.
## Example Request
```bash
curl -X GET "https://url/api/leaderboard"
```
## Example Response
```json
[
{
"username": "user1",
"wpm": 75,
"accuracy": 97,
"test_time": 120,
"test_length": 250
},
{
"username": "user2",
"wpm": 73,
"accuracy": 95,
"test_time": 115,
"test_length": 240
}
]
```