gRPC Port (Proto) 정의
Basic Structure
port:
ServiceName:
meta: proto @server @client
methods:
methodName:
meta: method -- 메서드 설명
params:
paramName: ParamType
return: ReturnType
gRPC Annotations
- @server: gRPC 서버 코드 생성
- @client: gRPC 클라이언트 코드 생성
gRPC Port Examples
dto:
CarInfo2Input:
meta: dto
fields:
brand: string -- 브랜드명
inputType: CarInfo23Input
boType: BoardType
CarInfo2Output:
meta: dto
fields:
brand: string -- 브랜드명
description: string -- 설명
modelId: string -- 모델 ID
port:
CarInfoPortService:
meta: proto @server @client
methods:
findByBrand:
meta: method -- 브랜드별 차량 정보 조회
params:
input: CarInfo2Input
return: CarInfo2Output
Generated Java Interface
package com.example.domain.port;
import io.elasticore.runtime.port.*;
import com.example.domain.dto.*;
/**
* Defines a gRPC service interface.
*/
@ProtoService(id="demo.CarInfoPortService", server=true, client=true)
public interface CarInfoPortService {
CarInfo2Output findByBrand(CarInfo2Input input);
}
env.yml 설정
gRPC Port를 사용하기 위해서는 env.yml에 proto 네임스페이스를 설정해야 합니다:
namespace:
proto: io.company.proto # Protocol Buffer 패키지
port: io.company.domain.port