html请求接口_前端工程师吐后端工程师(第八讲)——接口的开发
上一講我們介紹了如何寫讓模板變量在頁面上展示,本講我們介紹一下后端開發工作中最常用的功能——接口。創建一個go_test4文件夾,然后把go_test3中的代碼復制進去。然后打開main.go文件,進行更改。
說到接口就必不可少的涉及到傳值和接口返回,還有GET方式 、POST方式獲取數據。下面我們就先舉例來看看一個GET接口如何接收參數并且返回數據,具體代碼如下:
package代碼前半部分還是跟第七講中一樣,我們只需要關注 c.Query 和 c.String這兩個差異點就可以了。c.Query方法相當于Nodejs請求下圖代碼中的paramStr=url.parse(req.url).query;這一行代碼。
var就是在url中查找Key為firstname的字段,然后把value 返回給firstname。lastname也是的獲取方式也是一樣的。
至于c.String本身跟c.HTML還是有一些差異的。c.String有三個參數,第一個是請求返回的Code碼,這個參數直接http.StatusOK就可以。第二個參數是返回字符串原型,第三個是需要替換的字符串變量。
c.HTML也有三個參數,第一個也是請求返回的Code碼,第二個是渲染HTML的模板地址(可以是html也就是不能設置模板變量的,也可以是tmpl可以設置模板變量的),最后一個是就是需要展示的模板變量名。
具體函數先介紹到這里,后面我們看一下運行代碼之后的訪問界面。
訪問:http://localhost:9999/index?firstname=%22Chen1%22&lastname=%22Chen2%22
可以看到下圖,我們在訪問頁面請求時加入了firtname和lastname參數。然后在通過Gin的router獲取到了參數。最終把參數拼接為Hello "Chen1" "Chen2"字符串,返回給前端頁面。
GET方法返回頁面另外,在服務器控制臺我們也能看到用戶攜帶的對應參數信息,這部分信息不是我們打印的,而是Gin自動會在控制臺拼接出訪問用戶的PATH,如下圖所示。
GET方法控制臺輸出我們已經講過了GET請求的方式返回數據,以及獲取URL中的參數。
接下來我們該完成另一個在平時開發中常用的接口形式——POST方法傳遞數據。
接下來我們把main.go文件改為下面的代碼。
package main import ("fmt""net/http""github.com/gin-gonic/gin" ) func main() {r := gin.Default()r.POST("/post", func(c *gin.Context) {name := c.PostForm("name") password := c.DefaultPostForm("password", "00000000")result, ok := c.GetPostForm("ok") fmt.Println(ok)c.String(http.StatusOK, "hello %s %s %s", name, password, result)})r.Run(":9999") // listen and serve on 0.0.0.0:9999 }然后執行go run main.go。
然后開啟postman,發POST送一個請求,并且設置對應的參數name參數為aaaa,對應的password參數為password,對應的ok參數為ok。發送postman請求看看返回如下圖所示。
Gin的POST返回c.String(http.StatusOK, "hello %s %s %s", name, password, result)方法中,我們請求的參數都已經返回。可以大家觀察到還有一個fmt.Println(ok)沒有輸出。fmt.Println(ok)要在控制臺中觀察。如下圖所示:
println方法打印的true下面我們就對在后端中獲取Gin中POST的參數的三個常用方法做一下介紹。
PostForm獲取POST參數,如果沒有獲取到對應key的返回值,觸發零值機制,返回空字符串
DefaultPostForm獲取POST參數,如果沒有獲取到返回key的返回值,返回設置的默認值,也就是DefaultPostForm函數的第二個參數。
GetPostForm獲取post參數,但是有兩個返回值,第一個返回值表示返回結果,如果沒有獲取對應key的返回值時,同樣出發零值機制,返回空字符串。第二個返回值會返回當時key值是否存在的狀態,能獲取到返回true,如果不能獲取到返回false。
到此最常用的兩種獲取數據方式就介紹到這里了,有了他們其實我們就可以應對大部分的業務邏輯接口。
陳辰(CC老師) 978563552@qq.com
總結
以上是生活随笔為你收集整理的html请求接口_前端工程师吐后端工程师(第八讲)——接口的开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: i12单双耳切换_多种形态,切换惬意,雷
- 下一篇: proteus里面没有stm32怎么办_