https://github.com/activeguild/grpc-json-mock
This is a mock of grpc used for front-end development. Prepare the server using nodejs.
https://github.com/activeguild/grpc-json-mock
grpc grpc-mock grpc-web mock
Last synced: 8 months ago
JSON representation
This is a mock of grpc used for front-end development. Prepare the server using nodejs.
- Host: GitHub
- URL: https://github.com/activeguild/grpc-json-mock
- Owner: activeguild
- License: mit
- Created: 2020-03-10T07:34:47.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T21:14:43.000Z (over 2 years ago)
- Last Synced: 2025-07-15T08:12:20.798Z (9 months ago)
- Topics: grpc, grpc-mock, grpc-web, mock
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/grpc-mocky
- Size: 1.17 MB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Welcome to grpc-json-mock 😀
# Introduction
- A GRPC mock server for front-end development.
- Multiple APIs are supported.
- Supports the following APIs
- unary
- serverStreming
- clientStreming
- duplexStreming
# Install
```shell
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.
```shell
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.
```helloWorld.proto
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...
```service.json
{
"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\ | 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\ | 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\ | 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\ | 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
- [MIT](https://github.com/activeguild/grpc-json-mock/blob/master/LICENSE)