国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化

這篇具有很好參考價值的文章主要介紹了【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

到項目初始化過程了,這邊的項目設(shè)計完全按照作者自己的喜好來進(jìn)行定義和設(shè)置的,所以各位完全可以按照自己的偏好自喜設(shè)置哈。

首先是創(chuàng)建一個工作文件夾哈。
別問為啥不直接quickstart,因為quickstart生成的api名字是greet,改起來很麻煩(頭禿)。

> mkdir go-zero-demo
> code go-zero-demo/

注1: go-zero-demo是我隨便寫的個文件夾名字,寫個自己開心的名字就好,這個不影響任何運行結(jié)果
注2:第二步是用編輯器打開這個文件夾,我用的是vscode所以直接code打開了,用其他編輯器手動打開該文件夾都是ok的,不影響任何結(jié)果。

然后我就按照自己的喜歡庫庫新建了四個文件夾。
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
api就是放api對外接口的地方。
db就是放數(shù)據(jù)庫腳本。
models就是放對應(yīng)的數(shù)據(jù)表model。
services就是咱們放服務(wù)的地方。

還記得咱們第1部分新建的三張表不?點擊標(biāo)題不記得的話跳轉(zhuǎn)>>>
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 1項目表設(shè)計

復(fù)制黏貼一下哈~
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
這個init.sql就是初始化數(shù)據(jù)庫用的,內(nèi)容如下:(我屬于是記不住,所以init數(shù)據(jù)庫部分也給擱這了)
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
把他們執(zhí)行一下,記得先執(zhí)行init哈。

mysql> create database demo;
Query OK, 1 row affected (0.02 sec)

mysql> use demo;
Database changed;

mysql> (user.sql的內(nèi)容)
Query OK, 0 rows affected, 2 warnings (0.03 sec)

mysql> (article.sql的內(nèi)容)
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> (comment.sql的內(nèi)容)
Query OK, 0 rows affected (0.01 sec)

如圖所示就成功了哈。

那么此刻就可以根據(jù)官方文檔咱們直接生成model了哈。想看詳細(xì)解讀的官方文檔點此一鍵速達(dá)

咱們這個用的是mysql,官檔是既可以通過datasource也可以通過sql腳本,咱們直接sql腳本,從咱們db/xxx.sql生成對應(yīng)的model。

> goctl model mysql ddl --src db/user.sql --dir models/
> goctl model mysql ddl --src db/article.sql --dir models/
> goctl model mysql ddl --src db/comment.sql --dir models/

【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
指令和執(zhí)行結(jié)果都如圖所示哈,然后現(xiàn)在咱們再來看看咱們models文件夾下生成的東西。
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
很棒哈,該有的都有了。以usermodel為例,我們可以在usermodel_gen.go文件里面看到,已經(jīng)幫我們生成了一個User的數(shù)據(jù)model和增刪改查的四個方法。
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
作者也很友好的給了提示哈,gen的部分由goctl直接生成,不要編輯,盲猜二次執(zhí)行g(shù)octl model mysql ddl --src db/user.sql --dir models/的時候會直接覆蓋之前的usermodel_gen.go文件,但不會動usermodel.go文件。

嗯,聽人勸,吃飽飯,咱別在usermodel_gen里面寫東西哈,新增的方法的業(yè)務(wù)需要的額外字段邏輯咱們在usermodel里面拼拼湊湊哈。

好了,models生成好了,接下來咱們來整services。

我直接拿了官檔中的api示例來做服務(wù)生成哈,api示例來源點擊快速查看>>>
因為咱們model還不一樣,我還得改改它數(shù)據(jù)結(jié)構(gòu)。

syntax = "v1"

type (
	// 定義登錄接口的 json 請求體
	LoginReq {
		Phone    string `json:"phone"`
		Password string `json:"password"`
	}
	// 定義登錄接口的 json 響應(yīng)體
	LoginResp {
		Id     string `json:"id"`
		Name   string `json:"name"`
		Type   int64  `json:"type"`
		Status int64  `json:"status"`
	}
)

type (
	// 定義獲取用戶信息的 json 請求體
	GetUserInfoReq {
		Id string `json:"id"`
	}
	// 定義獲取用戶信息的 json 響應(yīng)體
	GetUserInfoResp {
		Id     string `json:"id"`
		Name   string `json:"name"`
		Type   int64  `json:"type"`
		Status int64  `json:"status"`
	}
)

type (
	RegisterReq {
		Name     string `json:"name"`
		Phone    string `json:"phone"`
		Password string `json:"password"`
	}
	// 定義獲取用戶信息的 json 響應(yīng)體
	RegisterResp {
		Id   string  `json:"id"`
		Name string `json:"name"`
		Desc string `json:"desc"`
	}
)

// 登錄
@server (
	group:  login
	prefix: /v1
)
service user {
	@handler login
	post /login (LoginReq) returns (LoginResp)
}

// 注冊
@server (
	group:  register
	prefix: /v1
)
service user {
	@handler register
	post /register (RegisterReq) returns (RegisterResp)
}

// 獲取用戶詳情
@server (
	jwt:    Auth
	group:  user
	prefix: /v1
)
service user {
	@handler getUserInfo
	post /user/info (GetUserInfoReq) returns (GetUserInfoResp)
}

如上述代碼哈,咱們給這個user服務(wù)給設(shè)計了三個接口,接著,咱們一鍵生成user服務(wù)的代碼。

> goctl api go --api api/user.api --dir services/user/

執(zhí)行上述代碼之后,打開services文件夾可以清晰地看到咱們user服務(wù)的代碼已經(jīng)生成了哈。
goctl生成api or rpc的官檔鏈接也掛一下,方便大家想要了解更多可配置信息。想看詳細(xì)解讀的官方文檔點此一鍵速達(dá)

【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化,原創(chuàng),go-zero 0-1實戰(zhàn),golang,學(xué)習(xí),開發(fā)語言,go-zero,go,微服務(wù)
如法炮制article部分哈。
設(shè)計好接口然后一鍵生成。

我后續(xù)會掛個github的demo項目鏈接,這里就不一一貼了,要不這文章得老長了。

項目完備已經(jīng)初見雛形哈,下一篇寫config配置。文章來源地址http://www.zghlxwxcb.cn/news/detail-858774.html

到了這里,關(guān)于【go零基礎(chǔ)】go-zero從零基礎(chǔ)學(xué)習(xí)到實戰(zhàn)教程 - 2項目初始化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • go-zero學(xué)習(xí) 第六章 分布式事務(wù)dtm

    go-zero學(xué)習(xí) 第六章 分布式事務(wù)dtm

    Go開源說第十七期 分布式事務(wù)DTM DTM開源項目文檔:官方文檔 分布式事務(wù)解決方案:7種常見解決方案匯總 msg :二階段消息,適合不需要回滾的全局事務(wù)。 saga :適合需要支持回滾的全局事務(wù)。 tcc :適合一致性要求較高的全局事務(wù)。 xa :適合性能要求不高,沒有行鎖爭搶的

    2024年02月15日
    瀏覽(21)
  • go-zero數(shù)據(jù)庫連接池 database/sql 源碼學(xué)習(xí)

    database/sql 中接口的層級關(guān)系 https://draveness.me/golang/docs/part4-advanced/ch09-stdlib/golang-database-sql/ database/sql源碼地址 : https://github.com/golang/go/tree/release-branch.go1.17/src/database/sql go-zero數(shù)據(jù)庫連接池源碼地址 https://github.com/zeromicro/go-zero/blob/master/core/stores/sqlx/sqlmanager.go 滑動驗證頁面 go

    2024年02月06日
    瀏覽(18)
  • 【go-zero】docker鏡像直接部署go-zero的API與RPC服務(wù) 如何實現(xiàn)注冊發(fā)現(xiàn)?docker network 實現(xiàn) go-zero 注冊發(fā)現(xiàn)

    【go-zero】docker鏡像直接部署go-zero的API與RPC服務(wù) 如何實現(xiàn)注冊發(fā)現(xiàn)?docker network 實現(xiàn) go-zero 注冊發(fā)現(xiàn)

    使用docker直接部署go-zero微服務(wù)會發(fā)現(xiàn)API無法找到RPC服務(wù) 用docker直接部署 我們會發(fā)現(xiàn)API無法注冊發(fā)現(xiàn)RPC服務(wù) 原因是我們?nèi)鄙倭薲ocker的network網(wǎng)橋 RPC服務(wù)運行正常 API服務(wù)啟動,通過docker logs 查看日志還是未發(fā)現(xiàn)RPC API的yaml配置 RPC服務(wù)的IP是 127.0.0.1 與對應(yīng)的端口 下圖為改成了定

    2024年02月13日
    瀏覽(27)
  • 【go-zero】go-zero阿里云oss 前端上傳文件到go-zero API服務(wù) 并在k8s pod中創(chuàng)建文件 并推送到阿里云oss 最佳實踐

    問題:在本地通過上傳文件,然后將文件推送到aliyun的oss中,是沒問題的 但是部署到了k8s中,則出現(xiàn)了問題,一直報錯沒有創(chuàng)建的權(quán)限 思路:開始認(rèn)為應(yīng)該將該文件掛載到configmap中,然后通過這種方式修改了deployment和dockerfile。最終發(fā)現(xiàn)應(yīng)該是go的創(chuàng)建文件路徑方式搞錯了,

    2024年02月13日
    瀏覽(29)
  • go-zero系列:接入Prometheus

    go-zero系列:接入Prometheus

    參考文檔:https://zhuanlan.zhihu.com/p/463418864 https://prometheus.io/download/ 進(jìn)入下載文件夾,比如prometheus-2.44.0.windows-amd64。 然后雙擊Prometheus.exe啟動軟件。 啟動后,可以訪問 http://127.0.0.1:9090/。就能查看Prometheus后臺。 然后重啟go-zero項目,能看到輸出日志:Starting prometheus agent at 0.0.

    2024年02月16日
    瀏覽(19)
  • go-zero的服務(wù)發(fā)現(xiàn)源碼閱讀

    go-zero的服務(wù)發(fā)現(xiàn)源碼閱讀

    服務(wù)發(fā)現(xiàn)原理與grpc源碼解析_wangxiaoangg的博客-CSDN博客 ? go-zero rpc demo官方文檔:rpc編寫與調(diào)用 | go-zero 目錄 一 服務(wù)注冊 1.?創(chuàng)建rpc服務(wù) 2. 啟動rpc服務(wù) 3.?registerEtcd做了什么 4.?discov.NewPublisher 服務(wù)發(fā)布者 二 服務(wù)發(fā)現(xiàn) 1.定義注冊resolver 2.解析etcd地址創(chuàng)建鏈接 3.update方法 在看rp

    2024年02月06日
    瀏覽(16)
  • go-zero微服務(wù)實戰(zhàn)——服務(wù)構(gòu)建

    go-zero微服務(wù)實戰(zhàn)——服務(wù)構(gòu)建

    接上一節(jié)go-zero微服務(wù)實戰(zhàn)——基本環(huán)境搭建。搭建好了微服務(wù)的基本環(huán)境,開始構(gòu)建整個微服務(wù)體系了,將其他服務(wù)也搭建起來。 order的目錄結(jié)構(gòu),如下 根目錄 api服務(wù) rpc服務(wù) 自定義邏輯層logic 自定義參數(shù)層models 自定義工具層util api服務(wù)和rpc服務(wù)都是基于goctl一鍵生成的,當(dāng)

    2024年02月14日
    瀏覽(23)
  • 使用go-zero快速構(gòu)建微服務(wù)

    使用go-zero快速構(gòu)建微服務(wù)

    本文是對 使用go-zero快速構(gòu)建微服務(wù) [1] 的親手實踐 編寫API Gateway代碼 mkdir api goctl api -o api/bookstore.api cd api goctl api go -api bookstore.api -dir . go run bookstore.go -f etc/bookstore-api.yaml 啟動API Gateway服務(wù),默認(rèn)偵聽在8888端口 因為默認(rèn)生成的 api/etc/bookstore-api.yml 為: 按提示下載,再次運行

    2024年02月13日
    瀏覽(24)
  • go-zero 開發(fā)之安裝 etcd

    本文只涉及 Linux 上的安裝。 二進(jìn)制安裝 下載二進(jìn)制安裝包 下載地址示例: 解壓二進(jìn)制安裝包 刪除二進(jìn)制安裝包 版本檢查 啟動 etcd 往 etcd 寫讀數(shù)據(jù) Docker 安裝 etcd 主要使用 Google 容器注冊表(gcr.io)下的 gcr.io/etcd-development/etcd 倉庫來存儲其容器鏡像。作為次要選項,它還使

    2024年02月04日
    瀏覽(18)
  • go-zero微服務(wù)實戰(zhàn)——基本環(huán)境搭建

    go-zero微服務(wù)實戰(zhàn)——基本環(huán)境搭建

    項目架構(gòu)來源于go-zero實戰(zhàn):讓微服務(wù)Go起來。此對該項目有所刪減,相對簡單適合初學(xué)者。 省去了項目中每個服務(wù)占用獨立docker的過程,省略了docker-compose的構(gòu)建過程。每個服務(wù)是一個獨立的程序不依賴與容器。 安裝goctl 安裝protoc 安裝go-zero 生成api標(biāo)準(zhǔn)api服務(wù) 生成rpc服務(wù) 生

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包