mirror of https://github.com/waku-org/nwaku.git
2.5 KiB
2.5 KiB
HTTP REST API
Similar to the JSON-RPC API, the HTTP REST API consists of a set of methods operating on the Waku Node remotely over HTTP.
This API is divided in different namespaces which group a set of resources:
Namespace | Description |
---|---|
/debug |
Information about a Waku v2 node. |
/relay |
Control of the relaying of messages. See 11/WAKU2-RELAY RFC |
/store |
Retrieve the message history. See 13/WAKU2-STORE RFC |
/filter |
Control of the content filtering. See 12/WAKU2-FILTER RFC |
/admin |
Privileged access to the internal operations of the node. |
/private |
Provides functionality to encrypt/decrypt WakuMessage payloads using either symmetric or asymmetric cryptography. This allows backwards compatibility with Waku v1 nodes. |
API Specification
The HTTP REST API has been designed following the OpenAPI 3.0.3 standard specification format. The OpenAPI specification files can be found here:
Namespace | OpenAPI file |
---|---|
/debug |
openapi.yaml |
/relay |
openapi.yaml |
/store |
openapi.yaml |
/filter |
openapi.yaml |
The OpenAPI files can be analysed online with Redocly
Check the OpenAPI Tools site for the right tool for you (e.g. REST API client generator)
A particular OpenAPI spec can be easily imported into Postman
- Open Postman.
- Click on File -> Import...
- Load the openapi.yaml of interest, stored in your computer.
- Then, requests can be made from within the 'Collections' section.
Usage example
get_waku_v2_debug_v1_info
JSON-RPC call:
curl -d '{"jsonrpc":"2.0","method":"get_waku_v2_debug_v1_info","params":[],"id":1}' -H 'Content-Type: application/json' localhost:8645 -s | jq
Equivalent call for the REST API:
curl http://localhost:8645/debug/v1/info -s | jq
Node configuration
Find details here