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