Функция http.NewServeMux

Функция http.NewServeMux создает новый экземпляр мультиплексора HTTP-запросов, который реализует интерфейс http.Handler. Мультиплексор позволяет регистрировать обработчики для различных путей URL и направляет входящие HTTP-запросы к соответствующему обработчику на основе пути запроса. Функция не принимает никаких параметров и возвращает указатель на структуру http.ServeMux.

Синтаксис

gofunc NewServeMux() *ServeMux

Пример

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

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  mux := http.NewServeMux()

  mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
  })

  http.ListenAndServe(":8080", mux)
}

Пример

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

gopackage main

import (
  "fmt"
  "net/http"
)

func main() {
  mux := http.NewServeMux()

  mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Home page")
  })

  mux.HandleFunc("/about", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "About page")
  })

  mux.HandleFunc("/contact", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Contact page")
  })

  http.ListenAndServe(":8080", mux)
}

Пример

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

gopackage main

import (
  "fmt"
  "net/http"
)

type helloHandler struct{}

func (h helloHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  fmt.Fprintf(w, "Hello from custom handler")
}

func main() {
  mux := http.NewServeMux()

  mux.Handle("/hello", helloHandler{})

  http.ListenAndServe(":8080", mux)
}

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

  • структуру http.ServeMux,
    которая представляет мультиплексор HTTP-запросов
  • метод ServeMux.Handle,
    который регистрирует обработчик для указанного пути
  • метод ServeMux.HandleFunc,
    который регистрирует функцию-обработчик для указанного пути
  • функцию http.ListenAndServe,
    которая запускает HTTP-сервер с указанным обработчиком