go的restful接口
时间: 2023-10-08 13:10:27 浏览: 45
在Go语言中,可以使用标准库的net/http包来创建RESTful API。下面是一个简单的示例:
```go
package main
import (
"encoding/json"
"log"
"net/http"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
}
var users []User
func main() {
// 添加一些用户
users = append(users, User{ID: 1, Name: "Alice"})
users = append(users, User{ID: 2, Name: "Bob"})
// 创建HTTP路由
http.HandleFunc("/users", getUsers)
http.HandleFunc("/users/", getUserByID)
// 启动服务
log.Fatal(http.ListenAndServe(":8080", nil))
}
// 获取所有用户
func getUsers(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(users)
}
// 根据ID获取用户
func getUserByID(w http.ResponseWriter, r *http.Request) {
id := r.URL.Path[len("/users/"):]
for _, user := range users {
if strconv.Itoa(user.ID) == id {
json.NewEncoder(w).Encode(user)
return
}
}
http.NotFound(w, r)
}
```
在上面的示例中,我们定义了一个User结构体,表示用户。然后我们创建了一个全局变量users,模拟了一些用户数据。接下来,在main函数中,我们创建了两个HTTP路由,分别用于获取所有用户和根据ID获取用户。最后,我们使用http.ListenAndServe()函数启动了一个监听8080端口的HTTP服务。
在getUsers()函数中,我们使用json.NewEncoder()函数将users切片编码为JSON格式,并写入ResponseWriter中,返回给客户端。在getUserByID()函数中,我们根据URL中的ID参数,查找users切片中对应的用户,并将该用户编码为JSON格式,返回给客户端。如果没有找到对应的用户,我们使用http.NotFound()函数返回404错误给客户端。
以上就是一个简单的Go语言RESTful API的示例。需要注意的是,这只是一个最基本的示例,实际开发中还需要考虑更多的因素,如安全性、性能等。