정리 작업중

[gRPC] Proto 구조

Xie Yun 2022. 9. 13. 16:55
반응형

proto 파일에 대한 기본 구조를 설명한다.

 

syntax = "proto3";

package gRPCproto;

service TestService {
  rpc TestMessage(Request) returns (Response);  
}
message Request {
	string strName = 1;
	string strName2 = 2;
}
message Response{
	string strName1 = 1;
	string strName2 = 2;
}

 

확장자 : .proto

 

1. 버전 명시

syntax = "proto3"; 
proto 파일에 대한 버전을 명시한다.

버전에 따라 지원되는 언어가 다르다.

 

2. 패키지명 지정
package gRPCproto;
패키지명을 지정할 수 있다.

다른 곳의 코드와 충돌 회피

 

3. 서비스 등록
service TestService 

{
  rpc TestMessage(Request) returns (Response);
}

 

TestService : xxGrpc.cs 에 지정될 Class 이름

TestMessage : 메서드 명

(Request) : 요청할 때 보낼 변수 or 요청받을 때 들어올 변수

(Response) : 응답할 때 보내줄 변수

 

4. 요청 변수 필드 지정

message Request {
      string strName = 1;
      string strName2 = 2;
}

Client에서 요청할 때는 해당 message Request를 이용해서 요청한다.

 

5. 응답 변수 필드 지정
message Response {
     string strName1 = 1;
     string strName2 = 2;
}

Server에서 위에 message Request에 대한 요청을 처리하고, 응답을 보낼 때는 message Response를 이용해 응답한다.

 

*Request Message와, Response Message 필드의 개수나 구조는 다를 수 있다.

 

참고 사이트 :

https://developers.google.com/protocol-buffers/docs/csharptutorial

반응형