Golang ECHO處理請求參數【3】


幾種獲取請求參數的方式

1.綁定數據

通過將請求參數綁定到一個struct對象的方式獲取數據。這種方式獲取請求參數支持json、xml、k/v鍵值對等多種方式。

下面例子是將請求參數綁定到User struct對象。

// User 結構體定義
type User struct {
  Name  string `json:"name" form:"name" query:"name"`
  Email string `json:"email" form:"email" query:"email"`
}

通過定義struct字段的標簽,定義請求參數和struct字段的關系。
下面對User的Name字段的標簽進行說明。

struct標簽說明:

標簽 說明
json:"name" 支持post請求,數據格式為json格式,並且字段名為name
form:"name" 支持post請求,並且參數名為name
query:"name" 支持get請求,並且參數名為name

提示:你可以根據自己的需要選擇支持的請求方式和數據類型,例如需要支持xml數據格式,可以這樣定義字段標簽: xml:"name"

下面看控制器代碼:

// Handler
func(c echo.Context) (err error) {
  u := new(User)
  //調用echo.Context的Bind函數將請求參數和User對象進行綁定。
  if err = c.Bind(u); err != nil {
    return
  }
  
  //請求參數綁定成功后 u 對象就保存了請求參數。
  //這里直接將請求參數以json格式顯示
  //注意:User結構體,字段標簽定義中,json定義的字段名,就是User對象轉換成json格式對應的字段名。
  return c.JSON(http.StatusOK, u)
}

2.獲取post請求數據

通過echo.Context對象的FormValue函數可以直接獲取post請求參數.

// Handler
func(c echo.Context) error {
    //獲取name參數
	name := c.FormValue("name")
	
	//直接輸出name參數
	return c.String(http.StatusOK, name)
}

提示:通過FormValue函數獲取參數的值,數據類型都是String類型, 如果需要其他類型的數據,需要自己轉換數據格式。

3.獲取get請求數據

通過echo.Context對象的QueryParam函數可以直接獲取get請求參數.

// Handler
func(c echo.Context) error {
    //獲取name參數, 通過QueryParam獲取的參數值也是String類型。
	name := c.QueryParam("name")
	//直接輸出name參數
	return c.String(http.StatusOK, name)
})

4.獲取path路徑參數

通過echo.Context對象的Param獲取,url路徑參數。

//例子: url路由規則為/users/:name  , :name為參數。
e.GET("/users/:name", func(c echo.Context) error {
    //獲取路徑參數:name的值
	name := c.Param("name")
	//如果請求url為: /users/xjs 則name的值為xjs
	//Param獲取的值也是String類型
	return c.String(http.StatusOK, name)
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM