본문으로 건너뛰기

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