Skip to content

avito-tech/pro-backend-trainee-assignment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Тестовое задание стажера в юнит AvitoPRO

Необходимо реализовать сервис на Go для генерации случайных значений.

Сервис реализует JSON API работающее по HTTP. Каждой генерации присваивать уникальный id, по которому можно получить результат генерации методом retrieve.

Реализовать методы:

  • POST /api/generate/ — генерация случайного значения и его идентификатора
  • GET /api/retrieve/ — получение значения по id, которое вернулось в методе generate

Задача может быть решена со следующими усложнениями:

  • возможность задать входные параметры для метода /api/generate/:
    • type — тип возвращаемого случайного значения (строка, число, guid, цифробуквенное, из заданных значений),
    • длина возвращаемого значения;
  • возможность идемпотентных запросов, например несколько запросов с одним requestId (query-параметр или заголовок) вернут одинаковый результат (id генерации + случайное число);
  • сервис поставляется как Docker образ, опубликованный в публичном репозитории;
  • написаны Unit тесты;
  • как поменяется архитектура, если вместо простой задачи (генерация случайного значения) будет сложная (занимает минуты);
  • каждый POST и GET запрос логируется в реляционную базу данных: необходимо сохранять заголовок User-Agent, requestId (если задан), сгенерированное случайное число, url и количество http-запросов.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published