Usage of nested Handlers


  • Register a RESTful API for customers


Use the nested multiplexer

  • NestedMux wraps several business logic handlers
  • ServeMux wraps the NestedMux and serves all requests
package main

import (


const (
    // Prefix for API calls.
    apiPrefix = "/api/v1"

func main() { 
    mux := http.NewServeMux()
    apimux := httpx.NewNestedMux(apiPrefix)

    apimux.Handle("customers", httpx.MethodWrapper(customers.NewHandler()))
    apimux.Handle("customers/addresses", httpx.MethodWrapper(customers.NewAddressesHandler()))
    apimux.Handle("customers/contracts", httpx.MethodWrapper(customers.NewContractsHandler()))

    // Register further nested API handlers, then
    // let the multiplexer serve all API requests.

    mux.Handle(apiPrefix, apimux)

    // Register further multiplexed handlers, e.g. for static files.

    http.ListenAndServe(":8080", mux)