Skip to content

gRPC

EasyYapi supports exporting API documentation from gRPC service implementations.

Overview

gRPC support can automatically recognize gRPC service classes and extract:

  • gRPC service path (/<package>.<ServiceName>/<MethodName>)
  • Streaming type (unary, server-streaming, client-streaming, bidirectional)
  • Request/response protobuf message types

Enable gRPC Support

gRPC support is enabled by default. You can toggle it in IDE settings:

Settings > Other Settings > EasyApi

Class Recognition

A class is recognized as a gRPC service if it meets any of the following conditions:

  1. Extends io.grpc.BindableService (or a generated ImplBase superclass)
  2. Is annotated with @GrpcService (from grpc-spring-boot-starter)
  3. Matches the class.is.grpc rule override

class.is.grpc Rule

The class.is.grpc rule can be used to customize gRPC service recognition. When this rule evaluates to true for a class, it is treated as a gRPC service regardless of the default detection logic.

properties
class.is.grpc=groovy:it.isExtend("io.grpc.BindableService")

See class.is.grpc for more details.

Configuration

gRPC Call

Enable gRPC call functionality to invoke gRPC methods directly from the IDE. This is configured in IDE settings:

Settings > Other Settings > EasyApi > gRPC

Check the Enable gRPC call checkbox to enable gRPC call support.

When gRPC call is enabled, you also need to configure the gRPC runtime dependencies. The plugin needs gRPC runtime JARs to invoke methods. You can use the Auto Detect button in the IDE settings panel to automatically detect and resolve the required dependencies.

gRPC Artifact Configs

Configure gRPC artifact coordinates for runtime dependency resolution in IDE settings. The format is groupId:artifactId:version:enabled.

gRPC Additional Jars

Add additional JAR files for runtime resolution in IDE settings.

gRPC Repositories

Configure artifact repositories for dependency resolution in IDE settings. Supported types are maven, gradle, and custom.

See Also

Released under the Apache-2.0 License.