robrichard / grpc-node-server-reflection

gRPC Node Reflection Service Implementation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gRPC NodeJS Server Reflection

This package adds Server Reflection support to your @grpc/grpc-js servers.

Installation

npm:

npm install grpc-node-server-reflection

yarn:

yarn add grpc-node-server-reflection

How to use

To add the server reflection service pass your gRPC Server instance to the provided wrapServerWithReflection.

import * as grpc from '@grpc/grpc-js';
import wrapServerWithReflection from 'grpc-node-server-reflection';

// This wraps the instance of gRPC server with the Server Reflection service and returns it.
const server = wrapServerWithReflection(new grpc.Server());


// Since the wrapped server intercepts the `addService` method to keep track
// of all services added to the server make sure to add your services after
// wrapping your instance of the gRPC Server.
server.addService(...);

After wrapping your server you should now be able to rely on server reflection:

$ grpcurl -plaintext localhost:8080 list


grpc.reflection.v1alpha.ServerReflection
example.ExampleService
$ grpcurl -plaintext localhost:8080 describe grpc.reflection.v1alpha.ServerReflection

grpc.reflection.v1alpha.ServerReflection is a service:
service ServerReflection {
  rpc ServerReflectionInfo ( stream .grpc.reflection.v1alpha.ServerReflectionRequest ) returns ( stream .grpc.reflection.v1alpha.ServerReflectionResponse );
}

Support Status

Current Support by Server Reflection Request type:

Type Description Supported
ListServices List the full names of registered services ✔️
FileContainingSymbol Find the proto file that declares the given fully-qualified symbol name. ✔️
FileByFilename Find a proto file by the file name.
FileContainingExtension Find the proto file which defines an extension extending the given message type with the given field number.

About

gRPC Node Reflection Service Implementation.


Languages

Language:TypeScript 100.0%