欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

golang restful json

Golang 是一門受歡迎的編程語言,它通過HTTP提供了強(qiáng)大的創(chuàng)建RESTful API的能力。JSON被廣泛地用來進(jìn)行信息交換,而使用 golang 和 JSON 可以輕松地創(chuàng)建 RESTful API 接口。

import (
"encoding/json"
"log"
"net/http"
"github.com/gorilla/mux"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
Email string `json:"email"`
}
var users []User = []User{
{ID: 1, Name: "Tom", Email: "tom@example.com"},
{ID: 2, Name: "Jerry", Email: "jerry@example.com"},
}
func main() {
router := mux.NewRouter()
router.HandleFunc("/users", GetUsers).Methods("GET")
router.HandleFunc("/users/{id}", GetUser).Methods("GET")
log.Fatal(http.ListenAndServe(":8000", router))
}
func GetUsers(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(users)
}
func GetUser(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
params := mux.Vars(r)
for _, user := range users {
if strconv.Itoa(user.ID) == params["id"] {
json.NewEncoder(w).Encode(user)
return
}
}
http.Error(w, "User not found", http.StatusNotFound)
}

代碼中的User結(jié)構(gòu)體表示了需要存儲(chǔ)的信息,并使用JSON 標(biāo)簽來定義序列化和反序列化時(shí)對(duì)應(yīng)的屬性名。 處理HTTP請(qǐng)求的函數(shù)利用encoding/json包將我們的數(shù)據(jù)轉(zhuǎn)換成JSON格式并發(fā)送到客戶端。

使用的HTTP處理框架是gorilla/mux, 它簡化了路由的配置和處理HTTP的函數(shù)。定義HTTP路由的函數(shù)使用了常見的RESTful API接口設(shè)計(jì)、HTTP方法和路徑。GetUsers處理 GET /users 的請(qǐng)求,而GetUser處理 GET /users/{id} 的請(qǐng)求,其中 {id} 是需要找到的用戶的ID。

運(yùn)行代碼并通過瀏覽器或者HTTP客戶端訪問這些URLs(如:http://localhost:8000/usershttp://localhost:8000/users/1). 你將得到一個(gè)JSON格式的響應(yīng),包含了用戶信息。