49 lines
1.2 KiB
Markdown
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
|
|
}
|
|
]
|
|
```
|
|
|