Provides a mock JSON-RPC API given an OpenRPC Document
npm install @open-rpc/mock-serverProvide a Mock server for an OpenRPC Document.
Given an OpenRPC document, Mock server will provide a mock implementation of the JSON-RPC api that:
- implements all of the methods specified in the given OpenRPC document.
- when calling a method with params used in an example, the example's result will be returned.
- params without examples will have their results generated according to the method.result.schema: JSONSchema.
- validates input params against their respective JSONSchemas.
- Provides rpc.discover for service discovery-based integration testing.
Running the mock server in service mode will run a JSON-RPC service that:
- implements one method: mock. It takes an openrpc document, returns a url path postfix. Appending the path to the services url will give us a mock server for the document provided.
- host it yourself or use the OpenRPC hosted one: https://mock.open-rpc.org
Mock server is generally meant to be run via CLI, however it can also be imported to your project. doing so will:
- give you a function to start the server, and returns you the OpenRPC Server instance
- from there you can add transports, routers & middleware
``bash`
npm i -g @open-rpc/mock-server
`bash`
npm i -S @open-rpc/mock-server
. It will must be a valid OpenRPC document as validated by OpenRPC Metaschema, or an error will be returned.`bash
npm run mock-server
`this will start an HTTP server on http://localhost:3333 (default settings)
#### Custom path or filename
Where my-open-rpc-document.json is a file in the current directory which is a valid OpenRPC document as validated by OpenRPC Metaschema.
`bash
open-rpc-mock-server -d my-open-rpc-document.json
`#### OpenRPC Document from url
You can also provide a URL that will resolve the OpenRPC document in JSON format:
`bash
open-rpc-mock-server -d https://raw.githubusercontent.com/open-rpc/examples/master/service-descriptions/simple-math-openrpc.json
`#### Running in Service Mode
Allows you to add documents to the running server as a JSON-RPC request. One mock server in service mode can handle a large number of mocked services at once with this configuration.
`bash
open-rpc-mock-server --mode service
`A server is running on http://localhost:3333 now. You can call the
mock method, and pass it your OpenRPC document, which will start mocking that service (under the returned url path).
Trying out the mocked service
- Try out the free to use OpenRPC-hosted mock server
https://mock.open-rpc.org/` here- Using OpenRPC Mock Server to test against an Ethereum JSON-RPC API - Jun 11, 2019 - ETC Labs Core
How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.