title: How to wrap FileServer and HTTP api in one specific Handler
body: <p>I define my own router using for http api and fileSystem. But these two handlers haven't the same type format, how should to combine them in one specific type?</p>
  
  <pre><code>type App struct {
      mux      customRouter
      och      *ochttp.Handler
      mw       []Middleware
  }
  
  func (a *App) Handle(verb, path string, handler Handler, mw ...Middleware) {
  
      // First wrap handler specific middleware around this handler.
      handler = wrapMiddleware(mw, handler)
  
      // The function to execute for each request.
      h := func(w http.ResponseWriter, r *http.Request) {
          ...
      }
  
      // Add this handler for the specified verb and route.
      a.mux.MethodFunc(verb, path, h)
  }
  
  func (a *App) ServeHTTP(w http.ResponseWriter, r *http.Request) {
      a.och.ServeHTTP(w, r)
  }
  
  
  // the api handler type format
  // type Handler func(ctx context.Context, w http.ResponseWriter, r *http.Request) error
  // the filesystem handler type format
  // type Handler func(ctx context.Context, root http.FileSystem) error
  // want:
  // app.Handle(verb, path, func(ctx context.Context, w http.ResponseWriter, r *http.Request)...)
  // app.Handle(verb, path, func(ctx context.Context, root http.FileSystem)...)
  </code></pre>