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

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究

這篇具有很好參考價(jià)值的文章主要介紹了GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

官方文檔api-demo教程部分網(wǎng)址如下:

api demo 代碼生成 | go-zero Documentation

官方demo的架構(gòu)如下:

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯

etc包下:

demo-api.yaml

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯
服務(wù)名稱:demo-api
HOST地址:0.0.0.0監(jiān)聽(tīng)所有可用網(wǎng)絡(luò)接口
Port地址:服務(wù)運(yùn)行在8888端口

internal包下:

config/config.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯
存儲(chǔ)config信息,這里rest.RestConf是RESTful API的結(jié)構(gòu)體,此外還可以添加數(shù)據(jù)庫(kù),緩存配置信息

handler/demohandler.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯
輸入SvcContext(后面自己定義),返回HandlerFunc函數(shù)
三個(gè)過(guò)程:
解析request的類型,解析錯(cuò)誤,返回error(下圖為httpx.ErrorCtx源碼)
GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯
l := logic.NewDemoLogic(r.Context(), svcCtx)的相關(guān)代碼是我們后面自己定義,
l.Demo實(shí)際上充當(dāng)了業(yè)務(wù)邏輯的處理過(guò)程
失敗,返回報(bào)錯(cuò),成功,則帶上OK(200狀態(tài)碼)返回

handler/routes.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯
這個(gè)文件夾的代碼由goctl自動(dòng)生成,注冊(cè)路由,方法是get,路徑是/from/:name(:name代表路徑有一個(gè)名為name的參數(shù),在后面定義了這個(gè)name類型的參數(shù))
[]rest.Route代表了該類型的切片,包含了定義路由的那個(gè)結(jié)構(gòu)體

logic/demologic.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql編輯在demhandler中用到的代碼
DemoLogic結(jié)構(gòu)體:logger(用于記錄日志),ctx(請(qǐng)求的上下文信息),svcCtx(服務(wù)相關(guān)的信息,數(shù)據(jù)庫(kù)連接,緩存實(shí)例)
NewDemoLogic就是用于New一個(gè)DemoLogic實(shí)例
Demo方法就是處理request,構(gòu)造response的方法,具體的業(yè)務(wù)邏輯代碼
type是后面定義的

svc/servicecontext.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
用途是通過(guò)創(chuàng)建svcCtx來(lái)訪問(wèn)config字段,套娃,增強(qiáng)代碼的解藕性

types/types.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
goctl自動(dòng)生成,request和response結(jié)構(gòu)體長(zhǎng)得樣子
name類型被定義,可選為you或者me

demo.api

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
生成routes.go和types.go的文件依據(jù),注冊(cè)api處理的handler
采用proto3語(yǔ)法(一種數(shù)據(jù)交換格式)

demo.go

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
主文件,有如下步驟

  • 解析命令行參數(shù)
  • 加載配置文件到結(jié)構(gòu)體c中
  • 新建一個(gè)rest服務(wù)器實(shí)例
  • 創(chuàng)建服務(wù)上下文。注冊(cè)handler處理函數(shù)
  • 啟動(dòng)rest服務(wù)器

啟動(dòng)服務(wù)

GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
測(cè)試
GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究,微服務(wù),golang,mysql
與預(yù)期結(jié)果相符合文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-800044.html

到了這里,關(guān)于GoZero微服務(wù)個(gè)人探究之路(二)Go-Zero官方api demo示例探究的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • GoZero微服務(wù)微服務(wù)個(gè)人探究之路(五)部署微服務(wù)到k8s的一種最佳實(shí)踐

    在每個(gè)微服務(wù)下面新建一個(gè)Dockerfile文件 根據(jù)Dockerfile文件使用docker build指令,打包為具體的鏡像 (根據(jù)自己需求選擇)將docker鏡像上傳到私人docker倉(cāng)庫(kù)或者是公共倉(cāng)庫(kù),如果沒(méi)有上傳,則自動(dòng)保存在本地 編寫用于部署k8s的yaml文件--服務(wù)service,節(jié)點(diǎn)--pod 根據(jù)yaml文件,使用ku

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

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

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

    2024年02月13日
    瀏覽(28)
  • GoZero微服務(wù)個(gè)人探究(四)啟動(dòng)rpc微服務(wù)報(bào)錯(cuò)panic: context deadline exceeded

    GoZero微服務(wù)個(gè)人探究(四)啟動(dòng)rpc微服務(wù)報(bào)錯(cuò)panic: context deadline exceeded

    這里的原因有很多: 網(wǎng)絡(luò)不好,etcd服務(wù)沒(méi)有起起來(lái),如果etcd開起了tls加密,微服務(wù)沒(méi)有配置證書等原因 主要講的是為微服務(wù)配置好認(rèn)證證書,因?yàn)槠渌麅蓚€(gè)容易解決 在對(duì)應(yīng)服務(wù)的xxx.yaml內(nèi),補(bǔ)充etcd認(rèn)證文件相關(guān)內(nèi)容 參考來(lái)源:Go-Zero官方文檔

    2024年01月16日
    瀏覽(23)
  • 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ù)注冊(cè) 1.?創(chuàng)建rpc服務(wù) 2. 啟動(dòng)rpc服務(wù) 3.?registerEtcd做了什么 4.?discov.NewPublisher 服務(wù)發(fā)布者 二 服務(wù)發(fā)現(xiàn) 1.定義注冊(cè)resolver 2.解析etcd地址創(chuàng)建鏈接 3.update方法 在看rp

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

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

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

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

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

    本文是對(duì) 使用go-zero快速構(gòu)建微服務(wù) [1] 的親手實(shí)踐 編寫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 啟動(dòng)API Gateway服務(wù),默認(rèn)偵聽(tīng)在8888端口 因?yàn)槟J(rèn)生成的 api/etc/bookstore-api.yml 為: 按提示下載,再次運(yùn)行

    2024年02月13日
    瀏覽(25)
  • go-zero的rpc服務(wù)案例解析

    go-zero的rpc服務(wù)案例解析

    go-zero的遠(yuǎn)程調(diào)用服務(wù)是基于gRpc的gRPC教程與應(yīng)用。 zero使用使用gRpc需要安裝 protoc 插件,因?yàn)間Rpc基于protoc插件使用protocol buffers文件生成rpc服務(wù)器和api的代碼的。 gRPC 的代碼生成還依賴 protoc-gen-go,protoc-gen-go-grpc 插件來(lái)配合生成 Go 語(yǔ)言的 gRPC 代碼。 也可以使用go get命令安裝

    2024年02月13日
    瀏覽(21)
  • go-zero學(xué)習(xí) 第三章 微服務(wù)

    go-zero學(xué)習(xí) 第三章 微服務(wù)

    1.1 API服務(wù)模塊 goctl 使用 api 文件生成 api服務(wù) 命令: 1.2 RPC服務(wù)模塊 goctl 使用 protoc 文件生成 rpc服務(wù) 命令: 注意: --go_out 、 --go-grpc_out 、 --zrpc_out 三者配置的路徑需要完全一致,否則會(huì)報(bào)下列錯(cuò)誤。 基礎(chǔ)代碼:已生成基本的API服務(wù)、RPC服務(wù)。 這里以API服務(wù)調(diào)用RPC服務(wù)的登

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

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

    2024年02月13日
    瀏覽(29)
  • 微服務(wù)框架 go-zero logx 日志組件剖析

    微服務(wù)框架 go-zero logx 日志組件剖析

    上一篇我們說(shuō)到咱們還剩下 addTenant 功能還未實(shí)現(xiàn),不知道有沒(méi)有兄弟感興趣去實(shí)驗(yàn)一波的,本篇文章進(jìn)行簡(jiǎn)要補(bǔ)充 根據(jù)上一篇文章分析,其實(shí)我們只需要執(zhí)行如下幾步即可: 編寫 tenant.api,提供外部 addTenant 的 http 接口 編寫 tenant.api 提供一個(gè) POST http 的接口 / api /tenant/addt

    2024年02月11日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包