[gRPC] Proto 구조
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