«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как настроить ответы 404 (не найден) в Go с помощью httprouter?

Как настроить ответы 404 (не найден) в Go с помощью httprouter?

Опубликовано 1 ноября 2024 г.
Просматривать:487

How to Customize 404 (Not Found) Responses in Go with httprouter?

Настройка «Не найдено» (404) Обработка с помощью httprouter

При разработке API с использованием библиотеки httprouter обработка 404 (не найдено) реагирование является важнейшей задачей. Хотя в документации упоминается возможность обработки ошибок 404 вручную, реализация специального обработчика может оказаться сложной задачей.

Понимание поля NotFound

Структура httprouter.Router включает поле с именем NotFound, который имеет тип http.Handler. Это означает, что значение NotFound должно реализовывать метод ServeHTTP, присутствующий в интерфейсе http.Handler.

Создание собственного обработчика «Не найдено»

Чтобы определить свой собственный пользовательский обработчик, вы можете создать функцию с сигнатурой, соответствующей методу ServeHTTP:

func MyNotFound(w http.ResponseWriter, r *http.Request) {
    // ... Custom handling logic
}

Преобразование функции в обработчик

Чтобы преобразовать функцию в значение, реализующее интерфейс http.Handler, вы можете использовать помощник http.HandlerFunc() функция:

router := httprouter.New()
router.NotFound = http.HandlerFunc(MyNotFound)

Вызов пользовательского обработчика вручную

Если вы хотите вызвать свой собственный обработчик вручную из других обработчиков, укажите обработчик с ResponseWriter и *Request:

func ResourceHandler(w http.ResponseWriter, r *http.Request) {
    // ... Code to determine resource validity

    if !resourceExists {
        MyNotFound(w, r) // Manual invocation of custom handler
        return
    }

    // ... Resource exists, serve it normally
}

Заключение

Следуя этим шагам, вы сможете эффективно настроить процесс обработки сообщения «Не найдено» в API на основе httprouter, гарантируя, что пользователи будут получать соответствующие ответы при попытка получить доступ к несуществующим ресурсам.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3