关于Golang的路由器
源代码
https://github.com/okuyama-code/CRUD-Golang
func main() {
// ルーターを作成します
r := mux.NewRouter()
// ルーターに各エンドポイントとハンドラ関数を登録します
r.HandleFunc("/users", CreateUser).Methods("POST") // POST /users で CreateUser ハンドラを呼び出す
r.HandleFunc("/users/{id}", GetUser).Methods("GET") // GET /users/{id} で GetUser ハンドラを呼び出す
r.HandleFunc("/users/{id}", UpdateUser).Methods("PUT") // PUT /users/{id} で UpdateUser ハンドラを呼び出す
r.HandleFunc("/users", DeleteUser).Methods("DELETE") // DELETE /users で DeleteUser ハンドラを呼び出す
r.HandleFunc("/users", GetUsers).Methods("GET") // GET /users で GetUsers ハンドラを呼び出す
// サーバーを起動します
fmt.Println("サーバーをポート8080で起動します...")
log.Fatal(http.ListenAndServe(":8080", r))
}
这段代码是用Go语言编写的用于启动HTTP服务器的主要函数。
使用mux.NewRouter()创建路由器:r := mux.NewRouter()。mux是一个常用的路由器包,它根据HTTP请求的路径和方法来调用相应的处理函数。
在路由器中注册了一个/users路径和POST方法的端点。这个端点将调用CreateUser处理函数。
r.HandleFunc(“/users/{id}”, GetUser).Methods(“GET”):将路径为/users/{id}和HTTP请求方法为GET的端点注册到路由器。{id}是路径参数,表示用户ID。该端点将调用GetUser处理函数。
r.HandleFunc(“/users/{id}”, UpdateUser).Methods(“PUT”):将路径为”/users/{id}”且请求方法为PUT的终点注册到路由器。该终点将调用UpdateUser处理函数。
r.HandleFunc(“/users”, DeleteUser).Methods(“DELETE”):
该代码在路由器中注册了一个/users路径和DELETE方法的终结点。这个终结点将调用DeleteUser处理函数。
r.HandleFunc(“/users”, GetUsers).Methods(“GET”):在路由器中注册了路径为”/users”,请求方法为GET的端点。该端点将调用GetUsers处理函数。
fmt.Println(“在端口8080上启动服务器…”):输出服务器启动消息。
log.Fatal(http.ListenAndServe(“:8080”, r)):在指定的端口(这里是8080)上启动HTTP服务器。http.ListenAndServe函数会在指定的端口上接收HTTP请求,并根据注册的路由处理请求。如果出现错误,将显示错误消息并退出程序。
使用mux包创建路由器,并注册每个端点对应的处理函数。注册的处理函数在HTTP请求与相应路径和方法匹配时被调用。这样就创建了用于处理HTTP请求的端点。
最后,我们将在指定的端口(这里是8080)上启动HTTP服务器。这样,我们就能够接受指定端口上的请求,并根据注册的路由进行处理。
这段代码的目的是注册与特定HTTP请求相应的处理函数,并启动服务器。每个端点都会指定一个处理函数来处理基于HTTP方法和路径的请求。当服务器启动后,它会在指定的端口上等待请求,并调用适当的处理函数来处理请求。
使用log包的Fatal函数,在Go语言的标准库中,log.Fatal(http.ListenAndServe(“:8080”, r))用于启动和监听HTTP服务器。
具体来说,http.ListenAndServe(“:8080”, r)会在指定的端口(这里是8080)上接收HTTP请求,并启动一个HTTP服务器来处理请求,基于注册的路由器。
log.Fatal函数用于监视HTTP服务器的启动并在出现错误时停止程序。具体而言,它会执行以下操作:
当http.ListenAndServe函数返回错误时,会输出错误消息并停止程序的执行。
当程序的执行被停止后,程序会以退出码1(通常表示错误)结束。
这段代码的目的是在指定的端口上启动HTTP服务器并接受请求。http.ListenAndServe函数会启动HTTP服务器并做好接收请求的准备。然后,log.Fatal函数会在HTTP服务器启动时发生错误时停止程序,并输出错误消息。
通过这样做,当HTTP服务器启动时遇到问题时,程序会停止并可以查看错误消息。如果发生错误,可以将错误的原因和详细信息输出到日志中,以便及早定位和修复问题。