Sobes.tech
Назад к вопросам
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, параметрами запроса, базой данных и обработкой ошибок.