以下是如何在 Go 1.22 中使用新的 ServeMux 功能的一些基本示例:

    创建新的 ServeMux 实例

    mux := http.NewServeMux()
    

    使用 HandleFunc 方法注册路由

    mux.HandleFunc("GET /path/", func(w http.ResponseWriter, r *http.Request) {
       fmt.Fprint(w, "got path\n")
    })
    

    使用路径变量

    mux.HandleFunc("/task/{id}/", func(w http.ResponseWriter, r *http.Request) {
       id := r.PathValue("id")
       fmt.Fprintf(w, "handling task with id=%v\n", id)
    })
    

    指定 HTTP 方法

    mux.HandleFunc("POST /task/", server.createTaskHandler)
    mux.HandleFunc("GET /task/", server.getAllTasksHandler)
    mux.HandleFunc("DELETE /task/", server.deleteAllTasksHandler)
    

    监听和提供服务

    http.ListenAndServe(":8080", mux)
    

这些新特性使得 ServeMux 在处理复杂的路由模式时更加灵活和强大,减少了对第三方库如 gorilla/mux 的依赖。如果你的项目之前使用了第三方路由库,现在可以考虑迁移到标准库的 ServeMux,以简化代码和依赖管理。