Go-RESTful-創建RESTful API服務(三)

2023-05-02 10:26:40 來源:騰訊云


(資料圖)

下面是一個完整的示例,展示如何使用Go-RESTful框架創建一個簡單的RESTful API服務。這個示例提供了兩個路由:GET /users和POST /users,分別用于獲取用戶列表和創建一個新用戶。用戶信息以JSON格式返回給客戶端。

package mainimport (    "encoding/json"    "log"    "net/http"    "github.com/emicklei/go-restful")// 用戶結構體type User struct {    ID    int    `json:"id"`    Name  string `json:"name"`    Email string `json:"email"`}// 用戶列表var users = []User{    {ID: 1, Name: "Alice", Email: "alice@example.com"},    {ID: 2, Name: "Bob", Email: "bob@example.com"},    {ID: 3, Name: "Charlie", Email: "charlie@example.com"},}// 獲取所有用戶func getUsers(request *restful.Request, response *restful.Response) {    // 將用戶列表轉換為JSON格式,并寫入HTTP響應    response.WriteEntity(users)}// 創建一個新用戶func createUser(request *restful.Request, response *restful.Response) {    // 從HTTP請求中讀取用戶信息    var user User    err := request.ReadEntity(&user)    if err != nil {        response.WriteErrorString(http.StatusBadRequest, err.Error())        return    }    // 生成新的用戶ID    maxID := 0    for _, u := range users {        if u.ID > maxID {            maxID = u.ID        }    }    user.ID = maxID + 1    // 將新用戶添加到用戶列表    users = append(users, user)    // 返回新用戶信息    response.WriteHeaderAndEntity(http.StatusCreated, user)}func main() {    // 創建一個新的WebService對象    ws := new(restful.WebService)    // 定義路由    ws.Route(ws.GET("/users").To(getUsers))    ws.Route(ws.POST("/users").To(createUser))    // 將WebService對象注冊到RESTful框架中    restful.Add(ws)    // 啟動HTTP服務器    log.Fatal(http.ListenAndServe(":8080", nil))}

在這個示例中,我們定義了一個名為User的結構體,用于表示用戶信息。我們還定義了一個名為users的變量,用于存儲所有用戶的列表。

我們編寫了兩個處理函數:getUsers和createUser。getUsers函數用于返回所有用戶的列表,createUser函數用于創建一個新用戶。這兩個處理函數都遵循了Go-RESTful的處理函數簽名,并使用了Request和Response對象來處理HTTP請求和響應。

我們還創建了一個新的WebService對象“ws”,并使用其Route方法來定義了兩個路由,分別是GET /users和POST /users。這兩個路由分別指向了不同的處理函數getUsers和createUser。

最后,我們將WebService對象注冊到Go-RESTful框架中,并啟動了HTTP服務器。

標簽:

上一篇:環球實時:中國二十冶華中公司開展“五一”安全檢查 筑牢安全防線
下一篇:最后一頁