1.先安裝Go對(duì)應(yīng)的開源Swagger相關(guān)的庫(kù)
我們是于2013年成立的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計(jì)開發(fā),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì),微信小程序開發(fā)、等服務(wù)。為客戶創(chuàng)造有價(jià)值的品牌營(yíng)銷體驗(yàn),讓互聯(lián)網(wǎng)提升企業(yè)的競(jìng)爭(zhēng)力!
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ì)接口寫入注解
// @Summary 獲取多個(gè)標(biāo)簽
// @Tags 標(biāo)簽
// @Produce? json
// @Param name query string false "標(biāo)簽名稱" 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)簽名稱" 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)簽名稱" 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方法寫入如下注解
//@title 項(xià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,完成
一直直接操作的框架 使用vscode 打開就會(huì)自動(dòng)裝包,這次想寫一個(gè)簡(jiǎn)單應(yīng)用,確不會(huì)怎么建項(xiàng)目,記錄如下。
go1.14 后,以及不再需要把項(xiàng)目寫在GOPATH下,所有不需要再配置。
配置GOPRXY goenv-w GOPROXY=(國(guó)內(nèi)無(wú)法訪問)
使用go mod方法新建項(xiàng)目。
任意位置新建文件夾。
文件夾下執(zhí)行g(shù)o mod xxx ,生成一個(gè)go.mod文件。
新建一個(gè)main.go文件,就可以直接運(yùn)行了。
我開始的時(shí)候,先建了main.go文件,再執(zhí)行的go.mod。后面沒法運(yùn)行。
參考:李文周的博客。
go語(yǔ)言web框架beego安裝(go mod方式)_不忘初心,方得始終-CSDN博客
重要:將bee命令放到GOROOT/bin目錄下,這步很關(guān)鍵
cp bee /usr/local/go/bin/
注:或者可以將GOPATH/bin設(shè)置為環(huán)境變量
echo ’export PATH=" PATH"' ~/.bashrc
source ~/.bashrc
router路由下方法名要大寫,訪問權(quán)限
wq保存
生效環(huán)境變量: source /etc/profile
go build -o abc.exe可指定編譯后的文件名
Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解
環(huán)境變量GOBIN表示我們開發(fā)程序編譯后二進(jìn)制命令的安裝目錄。
當(dāng)我們使用go install命令編譯和打包應(yīng)用程序時(shí),該命令會(huì)將編譯后二進(jìn)制程序打包GOBIN目錄,一般我們將GOBIN設(shè)置為GOPATH/bin目錄。
export GOBIN=$GOPATH/bin
Go get包管理mod
windows下默認(rèn)項(xiàng)目路徑在go安裝目錄的src下(beego)
Revel Web開源框架
個(gè)高效的Go語(yǔ)言Web開發(fā)框架,?其思路完全來(lái)自 Java 的?Play Framework。
特點(diǎn)
熱編譯,簡(jiǎn)單可選,同步(每個(gè)請(qǐng)求都創(chuàng)建自己的goroutine來(lái)處理。
Go語(yǔ)言Web框架:beego
一個(gè)用Go開發(fā)的應(yīng)用框架,思路來(lái)自于tornado,路由設(shè)計(jì)來(lái)源于sinatra。
支持特性
MVC;
REST;
智能路由;
日志調(diào)試;
配置管理;
模板自動(dòng)渲染;
layout設(shè)計(jì);
中間件插入邏輯;
方便的JSON/XML服務(wù);