diff --git a/zh/08.3.md b/zh/08.3.md index d08c09a2..0a3e66af 100644 --- a/zh/08.3.md +++ b/zh/08.3.md @@ -64,56 +64,56 @@ Go没有为REST提供直接支持,但是因为RESTful是基于HTTP协议实现 ```Go - package main +package main - import ( - "fmt" - "github.com/julienschmidt/httprouter" - "log" - "net/http" - ) +import ( + "fmt" + "github.com/julienschmidt/httprouter" + "log" + "net/http" +) - func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { - fmt.Fprint(w, "Welcome!\n") - } +func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { + fmt.Fprint(w, "Welcome!\n") +} - func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name")) - } +func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { + fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name")) +} - func getuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - uid := ps.ByName("uid") - fmt.Fprintf(w, "you are get user %s", uid) - } +func getuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { + uid := ps.ByName("uid") + fmt.Fprintf(w, "you are get user %s", uid) +} - func modifyuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - uid := ps.ByName("uid") - fmt.Fprintf(w, "you are modify user %s", uid) - } +func modifyuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { + uid := ps.ByName("uid") + fmt.Fprintf(w, "you are modify user %s", uid) +} - func deleteuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - uid := ps.ByName("uid") - fmt.Fprintf(w, "you are delete user %s", uid) - } +func deleteuser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { + uid := ps.ByName("uid") + fmt.Fprintf(w, "you are delete user %s", uid) +} - func adduser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { - // uid := r.FormValue("uid") - uid := ps.ByName("uid") - fmt.Fprintf(w, "you are add user %s", uid) - } +func adduser(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { + // uid := r.FormValue("uid") + uid := ps.ByName("uid") + fmt.Fprintf(w, "you are add user %s", uid) +} - func main() { - router := httprouter.New() - router.GET("/", Index) - router.GET("/hello/:name", Hello) +func main() { + router := httprouter.New() + router.GET("/", Index) + router.GET("/hello/:name", Hello) - router.GET("/user/:uid", getuser) - router.POST("/adduser/:uid", adduser) - router.DELETE("/deluser/:uid", deleteuser) - router.PUT("/moduser/:uid", modifyuser) + router.GET("/user/:uid", getuser) + router.POST("/adduser/:uid", adduser) + router.DELETE("/deluser/:uid", deleteuser) + router.PUT("/moduser/:uid", modifyuser) - log.Fatal(http.ListenAndServe(":8080", router)) - } + log.Fatal(http.ListenAndServe(":8080", router)) +} ``` 上面的代码演示了如何编写一个REST的应用,我们访问的资源是用户,我们通过不同的method来访问不同的函数,这里使用了第三方库`github.com/julienschmidt/httprouter`,在前面章节我们介绍过如何实现自定义的路由器,这个库实现了自定义路由和方便的路由规则映射,通过它,我们可以很方便的实现REST的架构。通过上面的代码可知,REST就是根据不同的method访问同一个资源的时候实现不同的逻辑处理。