@open-rpc/mock-server
v1.7.8
Published
Provides a mock JSON-RPC API given an OpenRPC Document
Downloads
19,096
Readme
open-rpc-mock-server
Provide a Mock server for an OpenRPC Document.
Features
Basic Mode
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.
Service Mode
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
CLI & Javascript/Typescript API
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
Install
CLI
npm i -g @open-rpc/mock-server
Javascript API
npm i -S @open-rpc/mock-server
Usage
CLI
Defaults
The default settings expect to find a file in the root of your project called open-rpc.json
. It will must be a valid OpenRPC document as validated by OpenRPC Metaschema, or an error will be returned.
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.
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:
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.
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 - use your own localhost mock server with playground here
- or try the postman-like only interface OpenRPC Inspector with any of the above links
Example
- Using OpenRPC Mock Server to test against an Ethereum JSON-RPC API - Jun 11, 2019 - ETC Labs Core
Contributing
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.