- приложение представляет собой http-сервер с одним хендлером,
- хендлер на вход получает POST-запрос со списком url в json-формате
- сервер запрашивает данные по всем этим url и возвращает результат клиенту в json-формате
- если в процессе обработки хотя бы одного из url получена ошибка, обработка всего списка прекращается и клиенту возвращается текстовая ошибка Ограничения:
- для реализации задачи следует использовать Go 1.13 или выше
- использовать можно только компоненты стандартной библиотеки Go
- сервер не принимает запрос если количество url в в нем больше 20
- сервер не обслуживает больше чем 100 одновременных входящих http-запросов
- для каждого входящего запроса должно быть не больше 4 одновременных исходящих
- таймаут на запрос одного url - секунда
- обработка запроса может быть отменена клиентом в любой момент, это должно повлечь за собой остановку всех операций связанных с этим запросом
- сервис должен поддерживать 'graceful shutdown'
- результат должен быть выложен на github
- https://github.com/tupikoff/http-multiplexer/blob/v1.0/go.mod#L5 - используется сторонняя библиотека
- https://github.com/tupikoff/http-multiplexer/blob/v1.0/http-multiplexer.go#L76 - даже если контекст будет завершён, всё равно будет запущен запрос получения данных клиента
- https://github.com/tupikoff/http-multiplexer/blob/v1.0/http-multiplexer.go#L96-L109 - общие обработчики в теле итерации