Назад к вопросам
Middle+
6
Написать задачу на языке Go — практическая секция (задачи из жизни разработчика, без алгоритмов): доработать или исправить сервис. Длительность — 1,5 часа.
Компании, где спрашивали
Яндекс
Ответ от нейросети
sobes.tech AI
Для практической задачи на Go можно предложить доработать HTTP-сервис, который обрабатывает запросы и взаимодействует с базой данных. Например, добавить поддержку пагинации и фильтрации в существующий API, а также исправить баги с обработкой ошибок.
Пример задачи:
- В сервисе есть endpoint
/users, который возвращает всех пользователей без фильтров и пагинации. - Нужно добавить параметры
pageиlimitдля пагинации, а также параметрstatusдля фильтрации по статусу пользователя. - Обеспечить корректную обработку ошибок и возвращать понятные сообщения клиенту.
Пример кода обработки параметров:
func getUsersHandler(w http.ResponseWriter, r *http.Request) {
pageStr := r.URL.Query().Get("page")
limitStr := r.URL.Query().Get("limit")
status := r.URL.Query().Get("status")
page, err := strconv.Atoi(pageStr)
if err != nil || page < 1 {
page = 1
}
limit, err := strconv.Atoi(limitStr)
if err != nil || limit < 1 {
limit = 10
}
users, err := fetchUsersFromDB(page, limit, status)
if err != nil {
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
return
}
json.NewEncoder(w).Encode(users)
}
Такой пример позволяет проверить навыки работы с HTTP, параметрами запроса, базой данных и обработкой ошибок.