中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站舉報(bào)網(wǎng)怎樣申請(qǐng)自己的電商平臺(tái)

網(wǎng)站舉報(bào)網(wǎng),怎樣申請(qǐng)自己的電商平臺(tái),公司網(wǎng)站app怎么做,精神文明建設(shè)委員會(huì)網(wǎng)站option自定義http規(guī)則和http body響應(yīng) 簡(jiǎn)介 本篇接上文 golang 工程組件:grpc-gateway 環(huán)境安裝默認(rèn)網(wǎng)關(guān)測(cè)試 默認(rèn)網(wǎng)關(guān)配置終究是難用,本篇介紹一下proto里采用option自定義http規(guī)則以及讓網(wǎng)關(guān)返回http響應(yīng)而不是我們定義的grpc響應(yīng) option定義http…

option自定義http規(guī)則和http body響應(yīng)

簡(jiǎn)介

本篇接上文

golang 工程組件:grpc-gateway 環(huán)境安裝+默認(rèn)網(wǎng)關(guān)測(cè)試

默認(rèn)網(wǎng)關(guān)配置終究是難用,本篇介紹一下proto里采用option自定義http規(guī)則以及讓網(wǎng)關(guān)返回http響應(yīng)而不是我們定義的grpc響應(yīng)

option定義http規(guī)則和httpbody響應(yīng)

引入庫(kù)。可以直接拷貝grpc-gateway源碼下google文件夾到項(xiàng)目下

import "google/api/annotations.proto";
import "google/api/httpbody.proto";
import "google/protobuf/empty.proto";

user.proto

syntax = "proto3";
package  echo;
option go_package = "echo/proto";import "google/api/annotations.proto";
import "google/api/httpbody.proto";
import "google/protobuf/empty.proto";message User{int64 id = 1;// 改成下劃線形式string userName = 2[json_name="user_name"];int32 age = 3;string phone = 4;Addr addr = 5;
}message Addr {string province = 1;string city = 2;string county = 3;
}service Echo{rpc Get(User) returns (User) {//get請(qǐng)求option (google.api.http) = {get: "/echo/user/{id}"};}rpc AddOrUpdate(User) returns (User) {option (google.api.http) = {post: "/echo/user"// * 表示接受user所有字段body: "*"additional_bindings {put: "/echo/user"body: "*"}//patch 請(qǐng)求,只更新部分字段additional_bindings {patch: "/echo/user"body: "addr"}};}rpc Delete(User) returns (User) {option (google.api.http) = {delete: "/echo/user/{id}"};}// httpbody響應(yīng),前面是grpc定義的消息rpc List(google.protobuf.Empty) returns (stream google.api.HttpBody) {option (google.api.http) = {get: "/echo/user/list"};}
}

對(duì)應(yīng)grpc實(shí)現(xiàn)

server.go

package serverimport ("context""echo/proto""fmt""github.com/golang/protobuf/jsonpb"_ "github.com/golang/protobuf/jsonpb""google.golang.org/genproto/googleapis/api/httpbody"_ "google.golang.org/genproto/googleapis/api/httpbody""google.golang.org/protobuf/types/known/emptypb"_ "google.golang.org/protobuf/types/known/emptypb"
)type echoServer struct {proto.UnimplementedEchoServer
}func NewServer() proto.EchoServer {return &echoServer{}
}
func (s *echoServer) Get(ctx context.Context, in *proto.User) (*proto.User, error) {fmt.Printf("%+v\n", in)return in, nil
}
func (s *echoServer) AddOrUpdate(ctx context.Context, in *proto.User) (*proto.User, error) {fmt.Printf("%+v\n", in)return in, nil
}
func (s *echoServer) Delete(ctx context.Context, in *proto.User) (*proto.User, error) {fmt.Printf("%+v\n", in)return in, nil
}func (s *echoServer) List(in *emptypb.Empty, stream proto.Echo_ListServer) error {userList := []*proto.User{{Id:       1,UserName: "test1",Addr: &proto.Addr{Province: "深圳1",},},{Id:       2,UserName: "test2",Addr: &proto.Addr{Province: "深圳2",},},{Id:       3,UserName: "test3",Addr: &proto.Addr{Province: "深圳3",},},}for _, u := range userList {//jsonpb庫(kù)序列化返回的才是下劃線形式。 json序列化不讀tag里定義m := jsonpb.Marshaler{}data, _ := m.MarshalToString(u)msg := &httpbody.HttpBody{ContentType: "application/json",Data:        []byte(data),}stream.Send(msg)}return nil
}

啟動(dòng)后按對(duì)應(yīng)路由訪問(wèn)即可。 網(wǎng)關(guān)和啟動(dòng)源碼在上文里

http://www.risenshineclean.com/news/55607.html

相關(guān)文章:

  • 建設(shè)一個(gè)政府部門網(wǎng)站商丘網(wǎng)站推廣公司
  • 字節(jié)跳動(dòng)小程序開(kāi)發(fā)平臺(tái)seo網(wǎng)站編輯是做什么的
  • wordpress加密文章班級(jí)優(yōu)化大師免費(fèi)下載app
  • 做網(wǎng)站公司百度關(guān)鍵詞點(diǎn)擊器
  • 溫州網(wǎng)站建設(shè)優(yōu)化自己的品牌怎么做加盟推廣
  • 模板網(wǎng)站 怎么做優(yōu)化谷歌官方網(wǎng)站注冊(cè)
  • 三門峽網(wǎng)站seo優(yōu)化網(wǎng)站排名的方法
  • 網(wǎng)站制作鄭州網(wǎng)站制作yoast seo
  • 電商網(wǎng)站用php做的嗎游戲推廣賺傭金平臺(tái)
  • 手機(jī)網(wǎng)站開(kāi)發(fā) 手機(jī)模擬器發(fā)帖推廣平臺(tái)
  • 海外建站服務(wù)平臺(tái)網(wǎng)絡(luò)營(yíng)銷策略分析報(bào)告
  • 做網(wǎng)站公司賺不賺錢成都百度網(wǎng)站排名優(yōu)化
  • wordpress站內(nèi)搜索統(tǒng)計(jì)制作網(wǎng)頁(yè)的工具軟件
  • 軟件開(kāi)發(fā)模型及其特點(diǎn)優(yōu)化神馬網(wǎng)站關(guān)鍵詞排名價(jià)格
  • wordpress會(huì)員瀏覽網(wǎng)站排名優(yōu)化推廣
  • 網(wǎng)站備案名稱的影響嗎網(wǎng)絡(luò)推廣優(yōu)化
  • 鉆井網(wǎng)站建設(shè)電商代運(yùn)營(yíng)一般收多少服務(wù)費(fèi)
  • 網(wǎng)站開(kāi)發(fā)需要哪些人員產(chǎn)品推廣軟件有哪些
  • 外國(guó)人可以在中國(guó)做網(wǎng)站嗎百度線上推廣
  • 北京市住房和城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站6優(yōu)化seo深圳
  • wordpress 判斷管理員seo數(shù)據(jù)分析哪些方面
  • 像優(yōu)酷這樣的網(wǎng)站需要怎么做百度官網(wǎng)入口
  • wordpress禁用php報(bào)錯(cuò)湖南seo推廣系統(tǒng)
  • 國(guó)外紅色企業(yè)網(wǎng)站公眾號(hào)推廣方案
  • 做網(wǎng)站優(yōu)化有什么方法短視頻營(yíng)銷優(yōu)勢(shì)
  • 網(wǎng)頁(yè)設(shè)計(jì)與網(wǎng)站建設(shè)...手機(jī)版谷歌瀏覽器入口
  • 邵陽(yáng)屬于哪個(gè)省哪個(gè)市網(wǎng)站排名優(yōu)化的技巧
  • 怎么做網(wǎng)站熱線電話外鏈吧
  • 園林專業(yè)設(shè)計(jì)學(xué)習(xí)網(wǎng)站一個(gè)企業(yè)該如何進(jìn)行網(wǎng)絡(luò)營(yíng)銷
  • 沈陽(yáng)市住房和城鄉(xiāng)建設(shè)部網(wǎng)站手機(jī)優(yōu)化大師官方免費(fèi)下載