Skip to content

This is a mock of grpc used for front-end development. Prepare the server using nodejs.

License

Notifications You must be signed in to change notification settings

activeguild/grpc-json-mock

Repository files navigation

Welcome to grpc-json-mock 😀

GitHub Actions status

Introduction

  • A GRPC mock server for front-end development.
  • Multiple APIs are supported.
  • Supports the following APIs
    • unary
    • serverStreming
    • clientStreming
    • duplexStreming

Install

npm i -D grpc-json-mock

Cli

gen-grpc-tamplate

  • By specifying a proto file, you can output a json template for use in mock.
node ./node_module/.bin/gen-grpc-template {path}
Parameter Description
path Set the directory where the proto file or proto file is located
  • option
option Description
-i import another path
  • e.g.
syntax = "proto3";
package helloworld;

service Greeter {
  rpc unary (UnaryRequest) returns (UnaryResponse) {}
  rpc serverStreaming (UnaryRequest) returns (stream UnaryResponse) {}
  rpc clientStreaming (stream UnaryRequest) returns (UnaryResponse) {}
  rpc duplexStreaming (stream UnaryRequest) returns (stream UnaryResponse) {}
}

message UnaryRequest {
  string name = 1;
}

message UnaryResponse {
  string message = 1;
}

generate...

{
  "protos": [
    {
      "path": "example/protos/helloWorld.proto",
      "pkg": "helloworld",
      "options": {},
      "services": [
        {
          "name": "Greeter",
          "methods": [
            { "name": "unary", "output": {} },
            { "name": "serverStreaming", "output": {} },
            { "name": "clientStreaming", "output": {} },
            { "name": "duplexStreaming", "output": {} }
          ]
        }
      ]
    }
  ]
}

Interface

run

Parameter Type Description
address string Set the address of the mock server to be started. default 0.0.0.0
port string Set the port of the mock server to be started. default 50051
protos Array<proto> Required. Set proto and mock data to be loaded into mock server.
e.g. https://github.com/activeguild/grpc-json-mock/blob/master/example/service.json
https://github.com/activeguild/grpc-json-mock#user-content-proto

proto

Parameter Type Description
path string Required. Set location of proto file.
pkg string Required. Set pkgName from ptoro file.
options string https://github.com/grpc/grpc-node/tree/master/packages/proto-loader
services Array<service> Required. https://github.com/activeguild/grpc-json-mock#user-content-service

service

Parameter Type Description
name string Required. Set service name from ptoro file.
methods Array<method> Required. https://github.com/activeguild/grpc-json-mock#user-content-method

method

Parameter Type Description
name string Required. Set method name from ptoro file.
output Object | Array<object> Set response from server.
streamInterval number Set the sense of server streaming.Unit is msec. default 1000
error Object Set grpc error.
https://cloud.google.com/apis/design/errors#error_model

e.g.

https://github.com/activeguild/grpc-json-mock/tree/master/example

License

About

This is a mock of grpc used for front-end development. Prepare the server using nodejs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published