Skip to main content

gRPC Port (Proto) Definition

Basic Structure

port:
ServiceName:
meta: proto @server @client
methods:
methodName:
meta: method -- Method description
params:
paramName: ParamType
return: ReturnType

gRPC Annotations

  • @server: Generates gRPC server code
  • @client: Generates gRPC client code

gRPC Port Examples

dto:
CarInfo2Input:
meta: dto
fields:
brand: string -- Brand name
inputType: CarInfo23Input
boType: BoardType

CarInfo2Output:
meta: dto
fields:
brand: string -- Brand name
description: string -- Description
modelId: string -- Model ID

port:
CarInfoPortService:
meta: proto @server @client
methods:
findByBrand:
meta: method -- Find vehicle info by brand
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 Configuration

To use gRPC Port, you must configure the proto namespace in env.yml:

namespace:
proto: io.company.proto # Protocol Buffer package
port: io.company.domain.port