https://github.com/begenov/test-task
https://github.com/begenov/test-task
fiber golang http
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/begenov/test-task
- Owner: begenov
- Created: 2023-06-12T10:10:17.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-13T14:03:58.000Z (almost 3 years ago)
- Last Synced: 2025-04-05T00:01:54.482Z (about 1 year ago)
- Topics: fiber, golang, http
- Language: Go
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# test-task
Данное приложение разработано для проверки доступности сайтов из заданного списка и предоставления информации о времени доступа к ним. Оно предоставляет API для пользователей, которые могут получить время доступа к определенному сайту, имя сайта с минимальным временем доступа или имя сайта с максимальным временем доступа. Также, администраторы могут получать статистику о количестве запросов пользователей по этим эндпойнтам.
## Запуск приложения
Для запуска приложения выполните следующую команду:
```
go run cmd/main.go
```
## Использование API
### Получить время доступа к определенному сайту
```
GET /api/v1/site/:url
```
Замените :url на URL сайта, для которого вы хотите получить время доступа
Пример запроса:
```
GET /api/v1/site/example.com
```
Пример ответа:
```json
{
"URL": "example.com",
"LastTime": "2023-06-13T19:08:23.444197831+06:00"
}
```
```Получить имя сайта с минимальным временем доступа```
```
GET /api/v1/min-availability
```
Пример ответа:
```json
{
"message": "Сайт с минимальной доступностью: google.com"
}
```
```Получить имя сайта с максимальным временем доступа```
```
GET /api/v1/max-availability
```
Пример ответа:
```json
{
"message": "Сайт с максимальной доступностью: pages.tmall.com"
}
```
## Получить статистику количества запросов
### Получить статистику по всем запросам
```
GET /api/v1/stats
```
Пример ответа:
```json
{
"/site/{url}": 10,
"/site/min": 5,
"/site/max": 3
}
```