refactor: move protoapi.proto to examples/grpcentity and update paths

This commit is contained in:
2026-07-17 16:34:40 +09:00
parent f9e86885fc
commit 243262bc72
6 changed files with 48 additions and 48 deletions
+1 -1
View File
@@ -25,13 +25,13 @@
grpccanary/ grpccanary/
├── README.md # 본 프로젝트 종합 소개 및 실행 가이드 (교육용) ├── README.md # 본 프로젝트 종합 소개 및 실행 가이드 (교육용)
├── go.mod / go.sum # Go 모듈 의존성 정의 (Go 1.25.4+) ├── go.mod / go.sum # Go 모듈 의존성 정의 (Go 1.25.4+)
├── protoapi.proto # gRPC 인터페이스 정의서 (IDL)
├── protoapi/ # protoc로 컴파일 생성된 Go Stub 코드 ├── protoapi/ # protoc로 컴파일 생성된 Go Stub 코드
├── examples/ ├── examples/
│ ├── main.go # 학습 예제 통합 실행 진입점 (수동 전환) │ ├── main.go # 학습 예제 통합 실행 진입점 (수동 전환)
│ ├── jsonexample/ # 1단계: JSON 데이터 다루기 실습 예제 │ ├── jsonexample/ # 1단계: JSON 데이터 다루기 실습 예제
│ ├── httpentity/ # 2단계: HTTP & Gin 웹 서버 실습 예제 (WIP) │ ├── httpentity/ # 2단계: HTTP & Gin 웹 서버 실습 예제 (WIP)
│ └── grpcentity/ # 3단계: gRPC 통신 구현 실습 예제 (서버/클라이언트 데모) │ └── grpcentity/ # 3단계: gRPC 통신 구현 실습 예제 (서버/클라이언트 데모)
│ └── protoapi.proto # gRPC 인터페이스 정의서 (IDL)
└── docs/ └── docs/
├── MANUSCRIPT.md # 학습 로드맵 및 각 단계별 심화 가이드로의 안내서 ├── MANUSCRIPT.md # 학습 로드맵 및 각 단계별 심화 가이드로의 안내서
├── JSON.md # 1단계: JSON 데이터 다루기 상세 가이드 ├── JSON.md # 1단계: JSON 데이터 다루기 상세 가이드
+3 -3
View File
@@ -64,7 +64,7 @@ gRPC는 HTTP/2를 기반으로 구축된 구글의 고성능 오픈소스 원격
### 3.3 명세서 소스코드 및 구체적 분석 ### 3.3 명세서 소스코드 및 구체적 분석
저장소 루트에 선언된 [protoapi.proto](../protoapi.proto) 명세서 코드는 앞서 기획한 `IoTService` 통신 구조를 수립하기 위해 다음과 같이 사양을 기재해 둡니다. 실습 디렉토리 내에 선언된 [protoapi.proto](../examples/grpcentity/protoapi.proto) 명세서 코드는 앞서 기획한 `IoTService` 통신 구조를 수립하기 위해 다음과 같이 사양을 기재해 둡니다.
```proto ```proto
syntax = "proto3"; syntax = "proto3";
@@ -168,7 +168,7 @@ gRPC 개발 환경을 구축하기 위해 설치하는 세 가지 프로그램
### 4.3 실제로 번역하기 (컴파일 명령어) ### 4.3 실제로 번역하기 (컴파일 명령어)
아래 명령어는 컴퓨터에게 **"내가 작성한 `protoapi.proto` 약속 장부를 Go 언어로 번역해서 `protoapi/` 폴더에 가지런히 넣어줘!"** 하고 지시하는 마법의 명령어입니다: 아래 명령어는 컴퓨터에게 **"내가 작성한 `protoapi.proto` 약속 장부를 Go 언어로 번역해서 `protoapi/` 폴더에 가지런히 넣어줘!"** 하고 지시하는 마법의 명령어입니다:
```bash ```bash
protoc --go_out=. --go-grpc_out=. protoapi.proto protoc --go_out=. --go-grpc_out=. examples/grpcentity/protoapi.proto
``` ```
명령을 실행하고 나면 `protoapi/` 폴더 하위에 다음 두 파일이 기분 좋게 생성됩니다: 명령을 실행하고 나면 `protoapi/` 폴더 하위에 다음 두 파일이 기분 좋게 생성됩니다:
* `protoapi.pb.go`: 약속 문서에 적은 데이터(Message) 규격들을 Go 구조체로 변환해 놓은 파일입니다. * `protoapi.pb.go`: 약속 문서에 적은 데이터(Message) 규격들을 Go 구조체로 변환해 놓은 파일입니다.
@@ -242,7 +242,7 @@ protoc --go_out=. --go-grpc_out=. protoapi.proto
## 7. 한 걸음 더 나아가기 (다음 단계) ## 7. 한 걸음 더 나아가기 (다음 단계)
본 기초 실습을 끝마치셨다면, 함께 학습하는 후배나 동료분들에게 아래와 같은 도전 과제들을 제안해 보십시오: 본 기초 실습을 끝마치셨다면, 함께 학습하는 후배나 동료분들에게 아래와 같은 도전 과제들을 제안해 보십시오:
1. **약속 스펙 확장해 보기**: [protoapi.proto](../protoapi.proto) 파일에 새로운 환경 데이터(예: 미세먼지 수치 `double Dust = 4;`)를 슬쩍 얹어본 뒤, 직접 번역기를 새로 돌리고 Go 소스코드를 고치며 확장해 봅니다. 1. **약속 스펙 확장해 보기**: [protoapi.proto](../examples/grpcentity/protoapi.proto) 파일에 새로운 환경 데이터(예: 미세먼지 수치 `double Dust = 4;`)를 슬쩍 얹어본 뒤, 직접 번역기를 새로 돌리고 Go 소스코드를 고치며 확장해 봅니다.
2. **실전 분산 환경 상상하기**: 수많은 자율 에이전트나 IoT 센서 단말이 하나의 gRPC 중앙 관제 서버로 동시에 데이터를 주고받는 분산 AIoT 멀티 에이전트 인프라로의 아이디어를 고민해 봅니다. 2. **실전 분산 환경 상상하기**: 수많은 자율 에이전트나 IoT 센서 단말이 하나의 gRPC 중앙 관제 서버로 동시에 데이터를 주고받는 분산 AIoT 멀티 에이전트 인프라로의 아이디어를 고민해 봅니다.
--- ---
+1 -1
View File
@@ -7,7 +7,7 @@
학습의 일관성을 위해, 이 실습의 상세 분석 및 개념 명세는 통합 교재의 gRPC 심화 가이드인 **[docs/GRPC.md](../../docs/GRPC.md)**로 모듈화되어 있습니다. 전체 학습 로드맵은 [docs/MANUSCRIPT.md](../../docs/MANUSCRIPT.md)를 참고하십시오. 학습의 일관성을 위해, 이 실습의 상세 분석 및 개념 명세는 통합 교재의 gRPC 심화 가이드인 **[docs/GRPC.md](../../docs/GRPC.md)**로 모듈화되어 있습니다. 전체 학습 로드맵은 [docs/MANUSCRIPT.md](../../docs/MANUSCRIPT.md)를 참고하십시오.
[docs/GRPC.md](../../docs/GRPC.md) 문서에서 다음 내용을 참고하실 수 있습니다: [docs/GRPC.md](../../docs/GRPC.md) 문서에서 다음 내용을 참고하실 수 있습니다:
* **IDL (`protoapi.proto`) 명세 및 필드 분석** * **IDL ([protoapi.proto](./protoapi.proto)) 명세 및 필드 분석**
* **Go에서의 `protoc` 설치 및 Stub 파일 컴파일 방법** * **Go에서의 `protoc` 설치 및 Stub 파일 컴파일 방법**
* **gRPC 서버 코드 ([server.go](./server.go)) 구현 상세 분석** * **gRPC 서버 코드 ([server.go](./server.go)) 구현 상세 분석**
* **gRPC 클라이언트 코드 ([client.go](./client.go)) 커넥션 및 호출 흐름 분석** * **gRPC 클라이언트 코드 ([client.go](./client.go)) 커넥션 및 호출 흐름 분석**
+41 -41
View File
@@ -2,7 +2,7 @@
// versions: // versions:
// protoc-gen-go v1.36.11 // protoc-gen-go v1.36.11
// protoc v5.27.2 // protoc v5.27.2
// source: protoapi.proto // source: examples/grpcentity/protoapi.proto
package protoapi package protoapi
@@ -32,7 +32,7 @@ type SensingData struct {
func (x *SensingData) Reset() { func (x *SensingData) Reset() {
*x = SensingData{} *x = SensingData{}
mi := &file_protoapi_proto_msgTypes[0] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -44,7 +44,7 @@ func (x *SensingData) String() string {
func (*SensingData) ProtoMessage() {} func (*SensingData) ProtoMessage() {}
func (x *SensingData) ProtoReflect() protoreflect.Message { func (x *SensingData) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[0] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[0]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -57,7 +57,7 @@ func (x *SensingData) ProtoReflect() protoreflect.Message {
// Deprecated: Use SensingData.ProtoReflect.Descriptor instead. // Deprecated: Use SensingData.ProtoReflect.Descriptor instead.
func (*SensingData) Descriptor() ([]byte, []int) { func (*SensingData) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{0} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{0}
} }
func (x *SensingData) GetDeviceId() string { func (x *SensingData) GetDeviceId() string {
@@ -91,7 +91,7 @@ type SensingResponse struct {
func (x *SensingResponse) Reset() { func (x *SensingResponse) Reset() {
*x = SensingResponse{} *x = SensingResponse{}
mi := &file_protoapi_proto_msgTypes[1] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -103,7 +103,7 @@ func (x *SensingResponse) String() string {
func (*SensingResponse) ProtoMessage() {} func (*SensingResponse) ProtoMessage() {}
func (x *SensingResponse) ProtoReflect() protoreflect.Message { func (x *SensingResponse) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[1] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[1]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -116,7 +116,7 @@ func (x *SensingResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SensingResponse.ProtoReflect.Descriptor instead. // Deprecated: Use SensingResponse.ProtoReflect.Descriptor instead.
func (*SensingResponse) Descriptor() ([]byte, []int) { func (*SensingResponse) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{1} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{1}
} }
func (x *SensingResponse) GetSuccess() bool { func (x *SensingResponse) GetSuccess() bool {
@@ -142,7 +142,7 @@ type DateTime struct {
func (x *DateTime) Reset() { func (x *DateTime) Reset() {
*x = DateTime{} *x = DateTime{}
mi := &file_protoapi_proto_msgTypes[2] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -154,7 +154,7 @@ func (x *DateTime) String() string {
func (*DateTime) ProtoMessage() {} func (*DateTime) ProtoMessage() {}
func (x *DateTime) ProtoReflect() protoreflect.Message { func (x *DateTime) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[2] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[2]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -167,7 +167,7 @@ func (x *DateTime) ProtoReflect() protoreflect.Message {
// Deprecated: Use DateTime.ProtoReflect.Descriptor instead. // Deprecated: Use DateTime.ProtoReflect.Descriptor instead.
func (*DateTime) Descriptor() ([]byte, []int) { func (*DateTime) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{2} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{2}
} }
func (x *DateTime) GetValue() string { func (x *DateTime) GetValue() string {
@@ -186,7 +186,7 @@ type RequestDateTime struct {
func (x *RequestDateTime) Reset() { func (x *RequestDateTime) Reset() {
*x = RequestDateTime{} *x = RequestDateTime{}
mi := &file_protoapi_proto_msgTypes[3] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -198,7 +198,7 @@ func (x *RequestDateTime) String() string {
func (*RequestDateTime) ProtoMessage() {} func (*RequestDateTime) ProtoMessage() {}
func (x *RequestDateTime) ProtoReflect() protoreflect.Message { func (x *RequestDateTime) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[3] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[3]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -211,7 +211,7 @@ func (x *RequestDateTime) ProtoReflect() protoreflect.Message {
// Deprecated: Use RequestDateTime.ProtoReflect.Descriptor instead. // Deprecated: Use RequestDateTime.ProtoReflect.Descriptor instead.
func (*RequestDateTime) Descriptor() ([]byte, []int) { func (*RequestDateTime) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{3} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{3}
} }
func (x *RequestDateTime) GetValue() string { func (x *RequestDateTime) GetValue() string {
@@ -231,7 +231,7 @@ type RequestPass struct {
func (x *RequestPass) Reset() { func (x *RequestPass) Reset() {
*x = RequestPass{} *x = RequestPass{}
mi := &file_protoapi_proto_msgTypes[4] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -243,7 +243,7 @@ func (x *RequestPass) String() string {
func (*RequestPass) ProtoMessage() {} func (*RequestPass) ProtoMessage() {}
func (x *RequestPass) ProtoReflect() protoreflect.Message { func (x *RequestPass) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[4] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[4]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -256,7 +256,7 @@ func (x *RequestPass) ProtoReflect() protoreflect.Message {
// Deprecated: Use RequestPass.ProtoReflect.Descriptor instead. // Deprecated: Use RequestPass.ProtoReflect.Descriptor instead.
func (*RequestPass) Descriptor() ([]byte, []int) { func (*RequestPass) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{4} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{4}
} }
func (x *RequestPass) GetSeed() int64 { func (x *RequestPass) GetSeed() int64 {
@@ -282,7 +282,7 @@ type RandomPass struct {
func (x *RandomPass) Reset() { func (x *RandomPass) Reset() {
*x = RandomPass{} *x = RandomPass{}
mi := &file_protoapi_proto_msgTypes[5] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -294,7 +294,7 @@ func (x *RandomPass) String() string {
func (*RandomPass) ProtoMessage() {} func (*RandomPass) ProtoMessage() {}
func (x *RandomPass) ProtoReflect() protoreflect.Message { func (x *RandomPass) ProtoReflect() protoreflect.Message {
mi := &file_protoapi_proto_msgTypes[5] mi := &file_examples_grpcentity_protoapi_proto_msgTypes[5]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -307,7 +307,7 @@ func (x *RandomPass) ProtoReflect() protoreflect.Message {
// Deprecated: Use RandomPass.ProtoReflect.Descriptor instead. // Deprecated: Use RandomPass.ProtoReflect.Descriptor instead.
func (*RandomPass) Descriptor() ([]byte, []int) { func (*RandomPass) Descriptor() ([]byte, []int) {
return file_protoapi_proto_rawDescGZIP(), []int{5} return file_examples_grpcentity_protoapi_proto_rawDescGZIP(), []int{5}
} }
func (x *RandomPass) GetPassword() string { func (x *RandomPass) GetPassword() string {
@@ -317,11 +317,11 @@ func (x *RandomPass) GetPassword() string {
return "" return ""
} }
var File_protoapi_proto protoreflect.FileDescriptor var File_examples_grpcentity_protoapi_proto protoreflect.FileDescriptor
const file_protoapi_proto_rawDesc = "" + const file_examples_grpcentity_protoapi_proto_rawDesc = "" +
"\n" + "\n" +
"\x0eprotoapi.proto\"g\n" + "\"examples/grpcentity/protoapi.proto\"g\n" +
"\vSensingData\x12\x1a\n" + "\vSensingData\x12\x1a\n" +
"\bDeviceId\x18\x01 \x01(\tR\bDeviceId\x12 \n" + "\bDeviceId\x18\x01 \x01(\tR\bDeviceId\x12 \n" +
"\vTemperature\x18\x02 \x01(\x01R\vTemperature\x12\x1a\n" + "\vTemperature\x18\x02 \x01(\x01R\vTemperature\x12\x1a\n" +
@@ -346,19 +346,19 @@ const file_protoapi_proto_rawDesc = "" +
"\rGetRandomPass\x12\f.RequestPass\x1a\v.RandomPassB\x16Z\x14./protoapi/;protoapib\x06proto3" "\rGetRandomPass\x12\f.RequestPass\x1a\v.RandomPassB\x16Z\x14./protoapi/;protoapib\x06proto3"
var ( var (
file_protoapi_proto_rawDescOnce sync.Once file_examples_grpcentity_protoapi_proto_rawDescOnce sync.Once
file_protoapi_proto_rawDescData []byte file_examples_grpcentity_protoapi_proto_rawDescData []byte
) )
func file_protoapi_proto_rawDescGZIP() []byte { func file_examples_grpcentity_protoapi_proto_rawDescGZIP() []byte {
file_protoapi_proto_rawDescOnce.Do(func() { file_examples_grpcentity_protoapi_proto_rawDescOnce.Do(func() {
file_protoapi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_protoapi_proto_rawDesc), len(file_protoapi_proto_rawDesc))) file_examples_grpcentity_protoapi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_examples_grpcentity_protoapi_proto_rawDesc), len(file_examples_grpcentity_protoapi_proto_rawDesc)))
}) })
return file_protoapi_proto_rawDescData return file_examples_grpcentity_protoapi_proto_rawDescData
} }
var file_protoapi_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_examples_grpcentity_protoapi_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_protoapi_proto_goTypes = []any{ var file_examples_grpcentity_protoapi_proto_goTypes = []any{
(*SensingData)(nil), // 0: SensingData (*SensingData)(nil), // 0: SensingData
(*SensingResponse)(nil), // 1: SensingResponse (*SensingResponse)(nil), // 1: SensingResponse
(*DateTime)(nil), // 2: DateTime (*DateTime)(nil), // 2: DateTime
@@ -366,7 +366,7 @@ var file_protoapi_proto_goTypes = []any{
(*RequestPass)(nil), // 4: RequestPass (*RequestPass)(nil), // 4: RequestPass
(*RandomPass)(nil), // 5: RandomPass (*RandomPass)(nil), // 5: RandomPass
} }
var file_protoapi_proto_depIdxs = []int32{ var file_examples_grpcentity_protoapi_proto_depIdxs = []int32{
3, // 0: IoTService.GetDate:input_type -> RequestDateTime 3, // 0: IoTService.GetDate:input_type -> RequestDateTime
0, // 1: IoTService.UpdateSensingData:input_type -> SensingData 0, // 1: IoTService.UpdateSensingData:input_type -> SensingData
4, // 2: IoTService.GetRandomPass:input_type -> RequestPass 4, // 2: IoTService.GetRandomPass:input_type -> RequestPass
@@ -380,26 +380,26 @@ var file_protoapi_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for field type_name 0, // [0:0] is the sub-list for field type_name
} }
func init() { file_protoapi_proto_init() } func init() { file_examples_grpcentity_protoapi_proto_init() }
func file_protoapi_proto_init() { func file_examples_grpcentity_protoapi_proto_init() {
if File_protoapi_proto != nil { if File_examples_grpcentity_protoapi_proto != nil {
return return
} }
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{ File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_protoapi_proto_rawDesc), len(file_protoapi_proto_rawDesc)), RawDescriptor: unsafe.Slice(unsafe.StringData(file_examples_grpcentity_protoapi_proto_rawDesc), len(file_examples_grpcentity_protoapi_proto_rawDesc)),
NumEnums: 0, NumEnums: 0,
NumMessages: 6, NumMessages: 6,
NumExtensions: 0, NumExtensions: 0,
NumServices: 1, NumServices: 1,
}, },
GoTypes: file_protoapi_proto_goTypes, GoTypes: file_examples_grpcentity_protoapi_proto_goTypes,
DependencyIndexes: file_protoapi_proto_depIdxs, DependencyIndexes: file_examples_grpcentity_protoapi_proto_depIdxs,
MessageInfos: file_protoapi_proto_msgTypes, MessageInfos: file_examples_grpcentity_protoapi_proto_msgTypes,
}.Build() }.Build()
File_protoapi_proto = out.File File_examples_grpcentity_protoapi_proto = out.File
file_protoapi_proto_goTypes = nil file_examples_grpcentity_protoapi_proto_goTypes = nil
file_protoapi_proto_depIdxs = nil file_examples_grpcentity_protoapi_proto_depIdxs = nil
} }
+2 -2
View File
@@ -2,7 +2,7 @@
// versions: // versions:
// - protoc-gen-go-grpc v1.6.2 // - protoc-gen-go-grpc v1.6.2
// - protoc v5.27.2 // - protoc v5.27.2
// source: protoapi.proto // source: examples/grpcentity/protoapi.proto
package protoapi package protoapi
@@ -193,5 +193,5 @@ var IoTService_ServiceDesc = grpc.ServiceDesc{
}, },
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "protoapi.proto", Metadata: "examples/grpcentity/protoapi.proto",
} }