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