我正在试图找出最好的方法来处理对 /
的请求,并且在 Go 中只处理 /
,并且以不同的方式处理不同的方法。这是我想到的最好的办法:
package main
import (
"fmt"
"html"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
http.NotFound(w, r)
return
}
if r.Method == "GET" {
fmt.Fprintf(w, "GET, %q", html.EscapeString(r.URL.Path))
} else if r.Method == "POST" {
fmt.Fprintf(w, "POST, %q", html.EscapeString(r.URL.Path))
} else {
http.Error(w, "Invalid request method.", 405)
}
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
这是成语 Go 吗?对于标准的 http lib,这是我能做到的最好的事情吗?我更愿意做一些像 http.HandleGet("/", handler)
的东西,比如 Express 或 Sinatra。有没有一个好的框架来编写简单的 REST 服务?Web. 走看起来很有吸引力,但似乎停滞不前。
谢谢你的建议。