目录
前言
菜鸡自留地,如有错误请指正谢谢。
一、简单go web程序
1.简单程序
package main
import (
"fmt"
"net/http"
)
func handlerFunc(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "<h1>Hello world</h1>")
}
func main() {
http.HandleFunc("/", handlerFunc)
http.ListenAndServe(":3000", nil)
}
2.注意点
- Go语言引入包的概念,一个可执行的Go程序都要有一个main包,在go run时main包函数作为程序入口。
- net/http包时实现HTTP编程所使用的接口,其中http.ListenAndServe用以监听本地端口并提供服务,而http.HandleFunc是用来指定处理HTTP请求的函数。
- http.HandleFunc的参数中,http.Request是用户的请求信息,http.ResponseWriter是返回给用户的响应。
二、路由
1.路由比较
-
http.ServeMux:不支持URL路径参数(不直观)、不支持路由命名(无法命名)、不支持请求方法过滤(无法区分get、post等请求方法)。
-
gorilla/mux:精准匹配、可命名、可请求方法过滤、可以获得参数
2.请求路径正则
router.HandleFunc("/hello/{id:[0-9]+}",helloworld)
三、中间件
统一对响应做出处理的,我们可以使用中间件来做。并且使用mux.Use()加载中间件。但是Mux会先匹配路由再处理中间件,所以需要注意这一点。
总结
基础部分简单介绍一些基础知识,对于博客开发需要注意的内容放在后面介绍。