Go: Настройки и миграция до API — задача с проверкой

Практическая задача на Go по теме «Настройки и миграция до API». Условие содержит контракт функций, предоставленные типы и требования к результату. Используйте выданный шаблон и сохраняйте его публичные объявления. Перед проверкой разберите успешный путь, обработку ошибок и отмену операции, когда она предусмотрена контрактом. Здесь оценивается конкретный компонент сервиса; в полном курсе микросервисов на Go эти компоненты связываются с HTTP, PostgreSQL, gRPC и Kafka.

Реализуйте ParseConfig(lookup func(string) (string, bool)) (Config, error). Тип Config уже объявлен: DBDSN string, RequestTimeout time.Duration, HTTPAddr string. Вызывайте переданную lookup-функцию для DB_DSN, REQUEST_TIMEOUT и HTTP_ADDR; не читайте окружение процесса напрямую. DB_DSN обязателен и не может быть пустым. REQUEST_TIMEOUT обязателен, должен разбираться time.ParseDuration и быть строго положительным. HTTP_ADDR при отсутствии ключа получает :8080, но присутствующее пустое значение — ошибка. При ошибке верните ненулевой error с именем ошибочного поля; никогда не включайте значение DB_DSN в ошибку. При успехе сохраните разобранные значения без подключения к БД и без открытия HTTP listener. Точное сообщение ошибки не требуется.
РешениеGo

Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.

Отправьте решение, чтобы увидеть результаты тестов.

Связанные задачи