使用GO语言 写一套CURD的接口
时间: 2023-05-25 20:01:04 浏览: 176
好的,我可以帮你写CURD的接口。以下是使用GO语言编写的CURD接口的伪代码:
1. 导入所需的包和库
```
import (
"encoding/json"
"fmt"
"net/http"
"strconv"
)
```
2. 定义一个结构体来表示数据模型
```
type User struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
Address string `json:"address"`
}
```
3. 编写处理函数来处理请求,并提供响应
```
func main() {
http.HandleFunc("/users", handleUsers)
http.ListenAndServe(":8080", nil)
}
func handleUsers(w http.ResponseWriter, r *http.Request) {
switch r.Method {
case "GET":
getUsers(w, r)
case "POST":
createUser(w, r)
case "PUT":
updateUser(w, r)
case "DELETE":
deleteUser(w, r)
default:
http.Error(w, "Invalid request method.", http.StatusMethodNotAllowed)
return
}
}
```
4. 编写获取用户列表的函数
```
func getUsers(w http.ResponseWriter, r *http.Request) {
users := []User{
{1, "Alice", 25, "123 Main St"},
{2, "Bob", 30, "456 Elm St"},
{3, "Charlie", 35, "789 Oak St"},
}
json.NewEncoder(w).Encode(users)
}
```
5. 编写创建用户的函数
```
func createUser(w http.ResponseWriter, r *http.Request) {
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// Save user to database
json.NewEncoder(w).Encode(user)
}
```
6. 编写更新用户的函数
```
func updateUser(w http.ResponseWriter, r *http.Request) {
id, err := strconv.Atoi(r.URL.Query().Get("id"))
if err != nil {
http.Error(w, "Invalid user ID.", http.StatusBadRequest)
return
}
var user User
err = json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// Update user in database
json.NewEncoder(w).Encode(user)
}
```
7. 编写删除用户的函数
```
func deleteUser(w http.ResponseWriter, r *http.Request) {
id, err := strconv.Atoi(r.URL.Query().Get("id"))
if err != nil {
http.Error(w, "Invalid user ID.", http.StatusBadRequest)
return
}
// Remove user from database
w.WriteHeader(http.StatusNoContent)
}
```
以上就是一个简单的CURD接口的实现。希望能对你有所帮助。