mirror of
https://github.com/waku-org/nwaku.git
synced 2025-01-14 08:57:14 +00:00
b2acb54d6a
* feat: new rest api based on the current store json-rpc api and following the same structure as the current relay rest api. * feat: the store api attend GET requests to retrieve historical messages * feat: unit tests. * feat: allow return message to rest-client in case error (4XX or 5XX) * chore: always allow to call the store api endpoints (only rest) without explicit storenode (#1575) * feat: always mounting the current node as storenode client
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