当前位置: 首页 > news >正文

海宁网站网站建设淘宝网络营销方案

海宁网站网站建设,淘宝网络营销方案,怎么做网站架构,hexo文章转WordPressoption自定义http规则和http body响应 简介 本篇接上文 golang 工程组件#xff1a;grpc-gateway 环境安装默认网关测试 默认网关配置终究是难用#xff0c;本篇介绍一下proto里采用option自定义http规则以及让网关返回http响应而不是我们定义的grpc响应 option定义http…option自定义http规则和http body响应 简介 本篇接上文 golang 工程组件grpc-gateway 环境安装默认网关测试 默认网关配置终究是难用本篇介绍一下proto里采用option自定义http规则以及让网关返回http响应而不是我们定义的grpc响应 option定义http规则和httpbody响应 引入库。可以直接拷贝grpc-gateway源码下google文件夹到项目下 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_nameuser_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请求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/userbody: *}//patch 请求只更新部分字段additional_bindings {patch: /echo/userbody: addr}};}rpc Delete(User) returns (User) {option (google.api.http) {delete: /echo/user/{id}};}// httpbody响应,前面是grpc定义的消息rpc List(google.protobuf.Empty) returns (stream google.api.HttpBody) {option (google.api.http) {get: /echo/user/list};} }对应grpc实现 server.go package serverimport (contextecho/protofmtgithub.com/golang/protobuf/jsonpb_ github.com/golang/protobuf/jsonpbgoogle.golang.org/genproto/googleapis/api/httpbody_ google.golang.org/genproto/googleapis/api/httpbodygoogle.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库序列化返回的才是下划线形式。 json序列化不读tag里定义m : jsonpb.Marshaler{}data, _ : m.MarshalToString(u)msg : httpbody.HttpBody{ContentType: application/json,Data: []byte(data),}stream.Send(msg)}return nil }启动后按对应路由访问即可。 网关和启动源码在上文里
http://www.hkea.cn/news/14339249/

相关文章:

  • 站内推广的方法做ppt高手 一定要常去这八个网站
  • 论坛建站网站 二级域名需要备案吗
  • 免费电商网站建设上海公司购买新能源车条件
  • 网站优化的分析龙禧网站建设
  • 响应式网站都有哪些企业型网站建设方案
  • 网站制作优势wordpress如何注册地址
  • 用现成的php模板 怎么做网站网站建设规划文档
  • 中国建设银行官方网站登录入口怎样自己做卖商品的网站
  • 哪些网站可以做设计软件大健康网站怎么样做
  • 网站风格化设计方案重庆网站备案规定
  • 巨鹿企业做网站asp做的是系统还是网站
  • 贡嘎网站建设惠阳网站开发
  • 网站支付页面设计青州哪里做网站
  • 怎么做点击文字进入的网站怎么做自己的网站链接
  • 个人做视频网站烧钱大良网站建设服务
  • 韶关营销网站开发郑州网站推广公司服务
  • 镜像网站如何做排名专业网站制作公司塞尼铁克
  • 南岸网站建设哪家好wordpress留言版添加
  • 网站名称和备案网站素材类型
  • 网站怎么做现场直播视频wordpress改织梦
  • 电子商务网站建设的技术综述wordpress推荐商品主题
  • 中国工程建设焊接协会网站为你做的网站
  • 虫部落导航网站怎么做做外汇看的国外网站
  • 周口网站开发做网站还是租用服务器
  • 跨平台网站开发做网站排行榜
  • 信誉好的网站开发php和django做网站哪个好
  • 做网站办公室图片做网站需要营业执照嘛
  • 商务网站是什么个人做网站租云服务器
  • 网站做后台电商平台seo
  • 在线做六级阅读网站免费注册二级域名的网站