中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

.net可以做網(wǎng)站做游戲 博客園廣州線上教學(xué)

.net可以做網(wǎng)站做游戲 博客園,廣州線上教學(xué),黃岡做網(wǎng)站,營銷網(wǎng)站的策劃方案怎么做目錄 一:經(jīng)典入門案例二:請求參數(shù)2.1: API參數(shù)2.2: URL參數(shù)2.3: 表單參數(shù) 三: 響應(yīng)參數(shù)四:數(shù)據(jù)解析和綁定4.1: JSON數(shù)據(jù)解析綁定4.2: FROM表單數(shù)據(jù)解析和綁定 五: 路由組六:異步處理七:中間件7.…

目錄

    • 一:經(jīng)典入門案例
    • 二:請求參數(shù)
      • 2.1: API參數(shù)
      • 2.2: URL參數(shù)
      • 2.3: 表單參數(shù)
    • 三: 響應(yīng)參數(shù)
    • 四:數(shù)據(jù)解析和綁定
      • 4.1: JSON數(shù)據(jù)解析綁定
      • 4.2: FROM表單數(shù)據(jù)解析和綁定
    • 五: 路由組
    • 六:異步處理
    • 七:中間件
      • 7.1: 全局中間件
      • 7.2: 局部中間件

一:經(jīng)典入門案例

  • 代碼:
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 2: 編寫路由處理函數(shù)r.GET("/hello", func(context *gin.Context) {context.String(http.StatusOK, "hello world!!!")})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    
  • 請求:
    在這里插入圖片描述

二:請求參數(shù)

2.1: API參數(shù)

  • API參數(shù): 參數(shù)寫在路徑中。
  • 注意:
    • 1: 一般用冒號 + 路徑參數(shù)名稱來劃分。 冒號的作用是可以讓Param方法取到后面的數(shù)據(jù)。
    • 2: 如果是用星號 + 路徑名稱,則獲取到的是包含路徑斜杠+后續(xù)的所有內(nèi)容的。
  • 案例一:
    	package mainimport ("github.com/gin-gonic/gin""net/http")func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 2: 編寫路由處理函數(shù)r.GET("/user/:name/:action", func(context *gin.Context) {name := context.Param("name")action := context.Param("action")context.String(http.StatusOK, "name is "+name+", action is "+action+"。")})// 3: 路由監(jiān)聽端口r.Run(":8080")}```
    - 結(jié)果, 發(fā)送請求:http://127.0.0.1:8080/user/renshanwen/reading
    

在這里插入圖片描述

  • 案例二:
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 2: 編寫路由處理函數(shù)r.GET("/user/*name_action", func(context *gin.Context) {nameAction := context.Param("name_action")context.String(http.StatusOK, "name_action is "+nameAction)})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    

在這里插入圖片描述

2.2: URL參數(shù)

  • URL參數(shù):參數(shù)寫在請求k-v對中。
  • 使用Query()函數(shù)獲取參數(shù)信息, 獲取不到默認(rèn)獲取到空字符串。
  • 案例
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 2: 編寫路由處理函數(shù)r.GET("/user", func(context *gin.Context) {name := context.Query("name")age := context.Query("age")context.String(http.StatusOK, "name is "+name+" age is "+age+".")})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    

在這里插入圖片描述

2.3: 表單參數(shù)

  • POST請求中的信息, 一般是JSON數(shù)據(jù)。
  • 使用PostForm函數(shù)在表單中獲取數(shù)據(jù)。
  • 案例:
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 2: 編寫路由處理函數(shù)r.POST("/user", func(context *gin.Context) {name := context.PostForm("name")age := context.PostForm("age")context.String(http.StatusOK, "name is "+name+" age is "+age+".")})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }

在這里插入圖片描述

  • 解析JSON數(shù)據(jù)
  • 案例:
    package mainimport ("github.com/gin-gonic/gin""net/http""strconv"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 定義一個User結(jié)構(gòu)體type User struct {Name string `json:"name"`Age  int64  `json:"age"`}// 2: 編寫路由處理函數(shù)r.POST("/user", func(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中context.BindJSON(&reqData)// 構(gòu)造響應(yīng)context.String(http.StatusOK, "name is "+reqData.Name+" age is "+strconv.FormatInt(reqData.Age, 10)+".")})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    
  • 結(jié)果
    在這里插入圖片描述

三: 響應(yīng)參數(shù)

  • Gin支持多種響應(yīng)格式, 例如:json、結(jié)構(gòu)體、XML、YAML類似于java的properties、ProtoBuf。
  • 最常用的就是json。
  • 案例:
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 定義一個User結(jié)構(gòu)體type User struct {Name string `json:"name"`Age  int64  `json:"age"`}// 2: 編寫路由處理函數(shù)r.POST("/user", func(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中context.BindJSON(&reqData)respData := gin.H{"name": "renshanwen","age":  25,}// 構(gòu)造響應(yīng)context.JSON(http.StatusOK, respData)})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    
  • 結(jié)果:
    在這里插入圖片描述

四:數(shù)據(jù)解析和綁定

4.1: JSON數(shù)據(jù)解析綁定

  • 案例:
package mainimport ("github.com/gin-gonic/gin""net/http"
)func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 定義一個User結(jié)構(gòu)體type User struct {// 名稱 類型   被解析的類型:參數(shù)名稱 binding:"required"表示必須綁定(請求中必須攜帶)Name string `json:"name" binding:"required"`Age  int64  `json:"age"`}// 2: 編寫路由處理函數(shù)r.POST("/user", func(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中if err := context.BindJSON(&reqData); err == nil {respData := gin.H{"name": "renshanwen","age":  25,}// 構(gòu)造響應(yīng)context.JSON(http.StatusOK, respData)} else {context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}})// 3: 路由監(jiān)聽端口r.Run(":8080")
}
  • 缺失name測試
    在這里插入圖片描述
  • 缺失age測試
    在這里插入圖片描述

4.2: FROM表單數(shù)據(jù)解析和綁定

  • 表單只需要調(diào)整一下使用的方法:Bind和定義的類型form
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )func main() {// 1:實例化默認(rèn)路由r := gin.Default()// 定義一個User結(jié)構(gòu)體type User struct {// 名稱 類型   被解析的類型:參數(shù)名稱 binding:"required"表示必須綁定(請求中必須攜帶)Name string `form:"name" binding:"required"`Age  int64  `form:"age"`}// 2: 編寫路由處理函數(shù)r.POST("/user", func(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中if err := context.Bind(&reqData); err == nil {respData := gin.H{"name": "renshanwen","age":  25,}// 構(gòu)造響應(yīng)context.JSON(http.StatusOK, respData)} else {context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}})// 3: 路由監(jiān)聽端口r.Run(":8080")
    }
    
  • 測試
    在這里插入圖片描述
    在這里插入圖片描述

五: 路由組

  • 作用:根據(jù)URL前綴可以分組。
  • 案例:
    package mainimport ("github.com/gin-gonic/gin""net/http"
    )// 定義一個User結(jié)構(gòu)體
    type User struct {// 名稱 類型   被解析的類型:參數(shù)名稱 binding:"required"表示必須綁定(請求中必須攜帶)Name string `form:"name" binding:"required"`Age  int64  `form:"age"`
    }func main() {// 實例化默認(rèn)路由r := gin.Default()// 定義一個路由組userRoutes := r.Group("/user"){userRoutes.POST("/shan", test)userRoutes.POST("/wen", test)}// 路由監(jiān)聽端口r.Run(":8080")
    }func test(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中if err := context.Bind(&reqData); err == nil {respData := gin.H{"name": "renshanwen","age":  25,}// 構(gòu)造響應(yīng)context.JSON(http.StatusOK, respData)} else {context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}
    }
    
  • 測試
    在這里插入圖片描述

六:異步處理

  • 需求:某些處理, 我們可以放在后臺去做, 接口要求立刻返回數(shù)據(jù)。 則可以使用異步處理的方式。
  • 案例
    package mainimport ("fmt""github.com/gin-gonic/gin""net/http""time"
    )// 定義一個User結(jié)構(gòu)體
    type User struct {// 名稱 類型   被解析的類型:參數(shù)名稱 binding:"required"表示必須綁定(請求中必須攜帶)Name string `form:"name" binding:"required"`Age  int64  `form:"age"`
    }func main() {// 實例化默認(rèn)路由r := gin.Default()// 定義一個路由組userRoutes := r.Group("/user"){userRoutes.POST("/action", test)}// 路由監(jiān)聽端口r.Run(":8080")
    }func test(context *gin.Context) {// 實例化UserreqData := User{}// 將內(nèi)容綁定到字典中if err := context.Bind(&reqData); err == nil {respData := gin.H{"name": "renshanwen","age":  25,}// 進(jìn)行異步處理go func() {for i := 0; i < 10; i++ {fmt.Printf("正在處理 %d \n", i)time.Sleep(3 * time.Second)}}()// 構(gòu)造響應(yīng)context.JSON(http.StatusOK, respData)} else {context.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})}
    }
    
  • 結(jié)果, 先返回了響應(yīng), 后進(jìn)行循環(huán)處理。
    在這里插入圖片描述

七:中間件

7.1: 全局中間件

  • 所有的請求都經(jīng)過的中間件。
  • 例如: 所有的請求都經(jīng)過

7.2: 局部中間件

http://www.risenshineclean.com/news/1710.html

相關(guān)文章:

  • 手機(jī)wap網(wǎng)頁游戲廣州網(wǎng)站建設(shè)方案優(yōu)化
  • 電話銷售做網(wǎng)站推銷seo網(wǎng)站優(yōu)化軟件
  • wordpress美化文章標(biāo)題seo排名點擊軟件
  • win本地網(wǎng)站建設(shè)網(wǎng)絡(luò)優(yōu)化軟件
  • 做網(wǎng)站要收訂金嗎百度seo快速見效方法
  • 成都科技網(wǎng)站建設(shè)服務(wù)熱線seo實戰(zhàn)培訓(xùn)班
  • 網(wǎng)站維護(hù) 代碼開封網(wǎng)站設(shè)計
  • 招聘網(wǎng)站開發(fā)不受限制的搜索瀏覽器
  • wordpress手機(jī)建站教程軍事新聞最新消息
  • 常州建設(shè)工程質(zhì)量監(jiān)督網(wǎng)站鄭州seo代理外包
  • 如何對網(wǎng)站做優(yōu)化網(wǎng)絡(luò)營銷的基本內(nèi)容有哪些
  • 做電影網(wǎng)站犯法網(wǎng)絡(luò)營銷公司全網(wǎng)推廣公司
  • 開封做網(wǎng)站百度手機(jī)導(dǎo)航官方新版
  • 第一家中文商務(wù)網(wǎng)站明年2024年有疫情嗎
  • 湖南省住房城鄉(xiāng)建設(shè)廳網(wǎng)站磁力搜索
  • 做網(wǎng)站主要欄目內(nèi)競價托管信息
  • 網(wǎng)站后臺如何做做搜索引擎優(yōu)化的企業(yè)
  • 門戶網(wǎng)站開發(fā)報價單企業(yè)的網(wǎng)絡(luò)推廣
  • 文山州住房建設(shè)網(wǎng)站企業(yè)網(wǎng)絡(luò)推廣計劃
  • 微信小程序模版廣州seo網(wǎng)站推廣公司
  • 南通高端網(wǎng)站建設(shè)公司培訓(xùn)網(wǎng)頁
  • 承德做網(wǎng)站優(yōu)化搜狗網(wǎng)址大全
  • 國內(nèi)產(chǎn)品推廣網(wǎng)站廣州市疫情最新情況
  • 編程和做網(wǎng)站有關(guān)系嗎招商外包
  • 微信api文檔徐州seo代理計費
  • 泉州市住房與城鄉(xiāng)建設(shè)局網(wǎng)站seo外鏈?zhǔn)鞘裁匆馑?/a>
  • 手機(jī)網(wǎng)站 pc網(wǎng)站模板百度近日收錄查詢
  • 深圳疫情防控最新通知seo網(wǎng)站關(guān)鍵詞優(yōu)化
  • 怎么判斷網(wǎng)站建設(shè)年齡新媒體運營主要做什么
  • 網(wǎng)站寶 西部數(shù)碼網(wǎng)站管理助手廣告最多的網(wǎng)站