欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

go語(yǔ)言寫(xiě)框架 go語(yǔ)言前端框架

go語(yǔ)言框架gin之集成swagger

1.先安裝Go對(duì)應(yīng)的開(kāi)源Swagger相關(guān)的庫(kù)

創(chuàng)新互聯(lián)專(zhuān)注于崗巴企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城建設(shè)。崗巴網(wǎng)站建設(shè)公司,為崗巴等地區(qū)提供建站服務(wù)。全流程按需策劃,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

go get?github.com/swaggo/swag/cmd/swag

go get github.com/swaggo/gin-swagger

go get?github.com/swaggo/files

go get?github.com/alecthomas/template

2.驗(yàn)證是否安裝成功:swag -v

3.針對(duì)接口寫(xiě)入注解

// @Summary 獲取多個(gè)標(biāo)簽

// @Tags 標(biāo)簽

// @Produce? json

// @Param name query string false "標(biāo)簽名稱(chēng)" maxlength(100)

// @Param state query int false "狀態(tài)" Enums(0, 1) default(1)

// @Param page query int false "頁(yè)碼"

// @Param page_size query int false "每頁(yè)數(shù)量"

// @Success 200 {object} model.TagSwagger "成功"

// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

// @Router /api/v1/tags [get]

func (t Tag) List(c *gin.Context) {

}

// @Summary 新增標(biāo)簽

// @Tags 標(biāo)簽

// @Produce? json

// @Param name body string true "標(biāo)簽名稱(chēng)" minlength(3) maxlength(100)

// @Param state body int false "狀態(tài)" Enums(0, 1) default(1)

// @Param created_by body string false "創(chuàng)建者" minlength(3) maxlength(100)

// @Success 200 {object} model.Tag "成功"

// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

// @Router /api/v1/tags [post]

func (t Tag) Create(c *gin.Context) {

}

// @Summary 更新標(biāo)簽

// @Tags 標(biāo)簽

// @Produce? json

// @Param id path int true "標(biāo)簽ID"

// @Param name body string false "標(biāo)簽名稱(chēng)" minlength(3) maxlength(100)

// @Param state body int false "狀態(tài) (0為未刪除、1為已刪除)" Enums(0, 1) default(1)

// @Param modified_by body string true "修改者" minlength(3) maxlength(100)

// @Success 200 {array} model.Tag "成功"

// @Failure 400 {object} errcode.Error "請(qǐng)求錯(cuò)誤"

// @Failure 500 {object} errcode.Error "內(nèi)部錯(cuò)誤"

// @Router /api/v1/tags/{id} [put]

func (t Tag) Update(c *gin.Context) {

}

4.針對(duì)整個(gè)項(xiàng)目進(jìn)行注解,直接在main方法寫(xiě)入如下注解

//@title 項(xiàng)目名稱(chēng)

//@version 1.0

//@description 這里是描述

func main() {

5.生成執(zhí)行 swag init

這時(shí)會(huì)在我項(xiàng)目的docs文件夾下面生成docs.go、swagger.json、swagger.yaml三個(gè)文件

6.要在routers中進(jìn)行默認(rèn)初始化和注冊(cè)對(duì)應(yīng)的路由:

r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

同時(shí)要引用 _"blog-service/docs" ,不然會(huì)報(bào)錯(cuò)

7.查看接口文檔 :

8.ok,完成

go語(yǔ)言有沒(méi)有類(lèi)似tp5框架

有,go語(yǔ)言有框架,例如:Beego(Go語(yǔ)言下開(kāi)源的,高性能Web框架 )、Buffalo(Go語(yǔ)言下快速Web開(kāi)發(fā)框架)、Echo、Gin、Iris、Revel(高生產(chǎn)率,全棧Go語(yǔ)言的Web框架)等。

GoLang -- Gin框架

? 何為框架:

框架一直是敏捷開(kāi)發(fā)中的利器,能讓開(kāi)發(fā)者很快的上手并做出應(yīng)用,甚至有的時(shí)候,脫離了框架,一些開(kāi)發(fā)者都不會(huì)寫(xiě)程序了。成長(zhǎng)總不會(huì)一蹴而就,從寫(xiě)出程序獲取成就感,再到精通框架,快速構(gòu)造應(yīng)用,當(dāng)這些方面都得心應(yīng)手的時(shí)候,可以嘗試改造一些框架,或是自己創(chuàng)造一個(gè)。

Gin是一個(gè)golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經(jīng)發(fā)布了1.0版本。具有快速靈活,容錯(cuò)方便等特點(diǎn)。其實(shí)對(duì)于golang而言,web框架的依賴(lài)要遠(yuǎn)比Python,Java之類(lèi)的要小。自身的net/http足夠簡(jiǎn)單,性能也非常不錯(cuò)??蚣芨袷且恍┏S煤瘮?shù)或者工具的集合。借助框架開(kāi)發(fā),不僅可以省去很多常用的封裝帶來(lái)的時(shí)間,也有助于團(tuán)隊(duì)的編碼風(fēng)格和形成規(guī)范。

(1)首先需要安裝,安裝比較簡(jiǎn)單,使用go get即可

go get github.com/gin-gonic/gin

如果安裝失敗,直接去Github clone下來(lái),放置到對(duì)應(yīng)的目錄即可。

(2)代碼中使用:

下面是一個(gè)使用Gin的簡(jiǎn)單例子:

package main

import (

"github.com/gin-gonic/gin"

)

func main() {

router := gin.Default()

router.GET("/ping", func(c *gin.Context) {

c.JSON(200, gin.H{

"message": "pong",

})

})

router.Run(":8080") // listen and serve on 0.0.0.0:8080

}

簡(jiǎn)單幾行代碼,就能實(shí)現(xiàn)一個(gè)web服務(wù)。使用gin的Default方法創(chuàng)建一個(gè)路由handler。然后通過(guò)HTTP方法綁定路由規(guī)則和路由函數(shù)。不同于net/http庫(kù)的路由函數(shù),gin進(jìn)行了封裝,把request和response都封裝到gin.Context的上下文環(huán)境。最后是啟動(dòng)路由的Run方法監(jiān)聽(tīng)端口。麻雀雖小,五臟俱全。當(dāng)然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

Gin可以很方便的支持各種HTTP請(qǐng)求方法以及返回各種類(lèi)型的數(shù)據(jù),詳情可以前往查看。

2.1 匹配參數(shù)

我們可以使用Gin框架快速的匹配參數(shù),如下代碼所示:

冒號(hào):加上一個(gè)參數(shù)名組成路由參數(shù)??梢允褂胏.Param的方法讀取其值。當(dāng)然這個(gè)值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會(huì)被匹配。

瀏覽器輸入以下測(cè)試:

返回結(jié)果為:

其中c.String是gin.Context下提供的方法,用來(lái)返回字符串。

其中c.Json是gin.Context下提供的方法,用來(lái)返回Json。

下面我們使用以下gin提供的Group函數(shù),方便的為不同的API進(jìn)行分類(lèi)。

我們創(chuàng)建了一個(gè)gin的默認(rèn)路由,并為其分配了一個(gè)組 v1,監(jiān)聽(tīng)hello請(qǐng)求并將其路由到視圖函數(shù)HelloPage,最后綁定到 0.0.0.0:8000

C.JSON是Gin實(shí)現(xiàn)的返回json數(shù)據(jù)的內(nèi)置方法,包含了2個(gè)參數(shù),狀態(tài)碼和返回的內(nèi)容。http.StatusOK代表返回狀態(tài)碼為200,正文為{"message": “welcome"}。

注:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請(qǐng)自行了解。可以方便的返回HTML數(shù)據(jù)

我們?cè)谥暗慕Mv1路由下新定義一個(gè)路由:

下面我們?cè)L問(wèn)

可以看到,通過(guò)c.Param(“key”)方法,Gin成功捕獲了url請(qǐng)求路徑中的參數(shù)。同理,gin也可以捕獲常規(guī)參數(shù),如下代碼所示:

在瀏覽器輸入以下代碼:

通過(guò)c.Query(“key”)可以成功接收到url參數(shù),c.DefaultQuery在參數(shù)不存在的情況下,會(huì)由其默認(rèn)值代替。

我們還可以為Gin定義一些默認(rèn)路由:

這時(shí)候,我們?cè)L問(wèn)一個(gè)不存在的頁(yè)面:

返回如下所示:

下面我們測(cè)試在Gin里面使用Post

在測(cè)試端輸入:

附帶發(fā)送的數(shù)據(jù),測(cè)試即可。記住需要使用POST方法.

繼續(xù)修改,將PostHandler的函數(shù)修改如下

測(cè)試工具輸入:

發(fā)送的內(nèi)容輸入:

返回結(jié)果如下:

備注:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識(shí)別不出來(lái)。

一定要選擇對(duì)應(yīng)的PUT或者DELETE方法。

Gin框架快速的創(chuàng)建路由

能夠方便的創(chuàng)建分組

支持url正則表達(dá)式

支持參數(shù)查找(c.Param c.Query c.PostForm)

請(qǐng)求方法精準(zhǔn)匹配

支持404處理

快速的返回給客戶(hù)端數(shù)據(jù),常用的c.String c.JSON c.Data

分享題目:go語(yǔ)言寫(xiě)框架 go語(yǔ)言前端框架
分享URL:http://aaarwkj.com/article38/docpipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、外貿(mào)建站、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
亚洲国产欧美日韩激情在线| 人妻91一区二区三区| 色噜噜狠狠狠久久综合一区| 国产精品传媒免费在线观看| 日韩国产欧美一区二区三区| 亚洲综合久久五月天| 国产一区二区三区本色| 久草视频在线免费资源站| 免费国产三级在线观看| 亚洲不卡在线视频免费| 91国产香蕉在线观看| 99热视频这里只有精品| 少妇的诱惑免费在线播放| 日韩欧美国产麻豆91在线精品| 成人av高清在线观看| 亚洲香蕉视频免费在线观看| 国产精品呦呦国产精品尤物| 成人黄色动漫在线播放| 成年人在线免费观看国产| 一区二区在线视频中文字幕| 成人在线午夜你懂的视频| 亚洲免费av一区在线观看| 国产乱码精品一区二区三区爽爽爽| 伊人久久九九精品综合| 日本在线观看成人大片| 国产极品嫩模在线观看91| 国产一区二区三区在线精品专区| 亚洲国产欧美日韩综合| 国产精品国产三级国产专播精品| 99精品热视频在线观看| 四虎经典视频在线播放| 日韩精品福利片午夜免费| 亚洲丰满老熟女激情av| 国产精品六区久久综合亚洲av| 美女丝袜诱惑国产91| 亚洲国产欧美日韩在线不卡成人| 成人午夜在线三级内射| av天堂官网在线人妻| 人妻黄色这里只有精品| 曰韩精品一区二区三区乱码| av在线手机中文字幕|