导航菜单

Go语言/RESTful API开发
课程进度 76% · 第18/23章18/23章 · 标签 1/2
1

REST基础

RESTful API基于HTTP方法(GET/POST/PUT/DELETE)和资源路径设计。

路由设计

go
1
r := mux.NewRouter()
2
r.HandleFunc("/api/users", getUsers).Methods("GET")
3
r.HandleFunc("/api/users/{id}", getUser).Methods("GET")
4
r.HandleFunc("/api/users", createUser).Methods("POST")
5
r.HandleFunc("/api/users/{id}", updateUser).Methods("PUT")
6
r.HandleFunc("/api/users/{id}", deleteUser).Methods("DELETE")
7
http.ListenAndServe(":8080", r)
2

请求与响应

go
1
func getUser(w http.ResponseWriter, r *http.Request) {
2
vars := mux.Vars(r)
3
id := vars["id"]
4
// 查询数据库...
5
json.NewEncoder(w).Encode(user)
6
}
7
func createUser(w http.ResponseWriter, r *http.Request) {
8
var u User
9
json.NewDecoder(r.Body).Decode(&u)
10
// 保存...
11
w.WriteHeader(http.StatusCreated)
12
json.NewEncoder(w).Encode(u)
13
}
RESTmuxJSONCRUD路由