grpc-json-mock
v0.1.32
Published
A GRPC mock server for front-end developmentt.
Downloads
4
Maintainers
Readme
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