返回
纯Go,一分钟带你建立高效率Web服务
后端
2023-12-30 13:27:24
Go语言标准库实现Web服务之创建路由
开启我们漫长旅程的第一步:导入必要的依赖包
首先,先让我引进一下作为本次工作任务的重要工具:必要依赖库。
import (
"fmt"
"html/template"
"net/http"
"time"
)
相信大家一定不会对这些陌生吧,对于它们的基本信息,我们就不再细说啦!
现在我们将创建一个新的http.HandlerFunc类型的变量handle,用于处理请求。
var handle = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// 获取当前时间,并打印出来
t := time.Now()
fmt.Fprintf(w, "Hello, World! You're in %v now!", t)
})
但这时我们发现它还不会做出我们所需要的反应,所以我们需要创建一个http.Server实例并配置其服务地址和处理函数:
// 建立一个http.Server实例,我们会在8080端口运行
srv := &http.Server{
Addr: ":8080",
Handler: handle,
}
现在,让我们来一起为我们的项目选择最合适的启动方式
方案一:用http.ListenAndServe()启动项目。
// 立即运行服务
log.Fatal(http.ListenAndServe(":8080", handle))
方案二:用srv.ListenAndServe()启动项目。
// 立即运行服务
log.Fatal(srv.ListenAndServe())
方案三:采用srv.ListenAndServeTLS()启动项目(强烈建议使用https)。
// 启动https服务
log.Fatal(srv.ListenAndServeTLS("server.crt", "server.key"))
到此,我们的任务就完成了,接下来只需要用你喜爱的方式,运行它吧!
扩展:为我们的服务器创建路由
对于简单应用来说,我们已经足够了,但如果你想开发复杂应用的话,路由显然必不可少。
// 新建一个路由器,名为mux
mux := http.NewServeMux()
是时候给路由器添砖加瓦了!
我们为其配置一个路由规则,将“/hello”映射到我们的处理函数。
// 将 "/hello" 映射到我们的处理函数
mux.HandleFunc("/hello", handle)
现在,我们来启动项目
最后一步,我们启动项目,用http.ListenAndServe()或srv.ListenAndServe()都可以。
// 启动项目,可根据需要选择使用http.ListenAndServe()或srv.ListenAndServe()
log.Fatal(http.ListenAndServe(":8080", mux))
log.Fatal(srv.ListenAndServe())
这样我们就完成了路由器的创建,你可以用更加强大的路由器配置来创建更复杂的应用程序。
让我们总结一下
在这篇文章里,我们重点介绍了如何在Go标准库中创建路由器并启动项目。如果你有兴趣进行更加深入的学习,我推荐你阅读《Go Web编程》这本书籍,或者直接访问官方文档来获得更多帮助。