РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1018 of 1593 menu

Тип http.HandlerFunc

Тип http.HandlerFunc из пакета net/http представляет собой функциональный тип, который реализует интерфейс http.Handler. Он позволяет использовать обычные функции с сигнатурой func(ResponseWriter, *Request) в качестве обработчиков HTTP-запросов. В первый параметр функция принимает интерфейс http.ResponseWriter для формирования ответа, во второй параметр - указатель на структуру http.Request, содержащую информацию о входящем запросе.

Синтаксис

http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // обработка запроса })

Пример

Давайте создадим простой обработчик, который возвращает приветственное сообщение:

package main import ( "fmt" "net/http" ) func main() { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World!") }) http.ListenAndServe(":8080", handler) }

Пример

Давайте создадим обработчик, который анализирует путь запроса и возвращает соответствующий ответ:

package main import ( "fmt" "net/http" ) func main() { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case "/": fmt.Fprintln(w, "Home page") case "/about": fmt.Fprintln(w, "About page") default: w.WriteHeader(http.StatusNotFound) fmt.Fprintln(w, "Page not found") } }) http.ListenAndServe(":8080", handler) }

Пример

Давайте используем http.HandlerFunc для обработки различных HTTP-методов:

package main import ( "fmt" "net/http" ) func main() { handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.Method { case http.MethodGet: fmt.Fprintln(w, "GET request handled") case http.MethodPost: fmt.Fprintln(w, "POST request handled") default: w.WriteHeader(http.StatusMethodNotAllowed) fmt.Fprintln(w, "Method not allowed") } }) http.ListenAndServe(":8080", handler) }

Смотрите также

  • функцию http.HandleFunc,
    которая регистрирует функцию-обработчик для указанного паттерна
  • интерфейс http.Handler,
    который определяет метод ServeHTTP для обработки запросов
  • тип http.ServeMux,
    который реализует маршрутизатор для распределения запросов
  • интерфейс http.ResponseWriter,
    который используется для формирования HTTP-ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить