gRPC学习之简单模式(第三十九天)

简单模式:简单模式只是使用参数和返回值作为服务器与客户端传递数据的方式
实际编码在定义服务时:入参什么也不要加

// The service definition.
service ToUpper{
   
  rpc Upper (UpperRequest) returns (UpperReply) {
   }
}
  • 建立如下工程:
    在这里插入图片描述
    编写文件proto文件
syntax="proto3";
package proto;

// The request message
message UpperRequest {
   
  string name = 1;
}

// The response message
message UpperReply {
   
  string message = 1;
}

// The service definition.
service ToUpper{
   
  // Sends a greeting
  rpc Upper (UpperRequest) returns (UpperReply) {
   }
}


  • protoc.exe --go_out=plugins=grpc:. execl.proto.go 生成execl.proto.go.pb 文件
    可以看出,生成的文件中,增加了对应的方法
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.21.0
// 	protoc        v3.6.1
// source: jiandanmushi.proto

package proto

import (
	context "context"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// The request message
type UpperRequest struct {
   
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *UpperRequest) Reset() {
   
	*x = UpperRequest{
   }
	if protoimpl.UnsafeEnabled {
   
		mi := &file_jiandanmushi_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpperRequest) String() string {
   
	return protoimpl.X.MessageStringOf(x)
}

func (*UpperRequest) ProtoMessage() {
   }

func (x *UpperRequest) ProtoReflect() protoreflect.Message {
   
	mi := &file_jiandanmushi_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
   
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
   
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpperRequest.ProtoReflect.Descriptor instead.
func (*UpperRequest) Descriptor() ([]byte, []int) {
   
	return file_jiandanmushi_proto_rawDescGZIP(), []int{
   0}
}

func (x *UpperRequest) GetName() string {
   
	if x != nil {
   
		return x.Name
	}
	return ""
}

// The response message
type UpperReply struct {
   
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
}

func (x *UpperReply) Reset() {
   
	*x = UpperReply{
   }
	if protoimpl.UnsafeEnabled {
   
		mi := &file_jiandanmushi_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值