JSON Value Service¶
The JSON Value Service is configured on a subpath of a Web transport and allows you to expose a custom JSON value from your node configuration dynamically over HTTP(S).
This can be useful to have custom parameters accessible from JavaScript running in browsers or other Web clients.
Configuration¶
To configure a JSON Value ervice, attach a dictionary element to a path in your Web transport:
attribute |
description |
---|---|
``type`` |
must be |
``value`` |
any valid JSON value |
``options`` |
dictionary with options (see below) |
where options
is a dictionary:
attribute |
description |
---|---|
prettify |
a boolean that controls when to prettify the rendered JSON (default: true) |
allow_cross_origin |
a boolean, allow cross-origin requests (CORS) (default: false) |
discourage_caching |
a boolean, set headers to discourage caching of the response (default: false) |
Example¶
Here is an example Web Transport configuration that includes a
JSON Value Service on the subpath config
:
{
"type": "web",
"endpoint": {
"type": "tcp",
"port": 8080
},
"paths": {
"/": {
"type": "static",
"directory": ".."
},
"ws": {
"type": "websocket",
"url": "ws://localhost:8080/ws"
},
"config": {
"type": "json",
"value": {
"param1": "foobar",
"param2": [1, 2, 3],
"param3": {
"awesome": true,
"nifty": "yes"
}
}
}
}
When you open http://localhost:8080/config
in your browser, you
should get
{
"param1": "foobar",
"param2": [
1,
2,
3
],
"param3": {
"awesome": true,
"nifty": "yes"
}
}
Crossbar.io will serve the JSON value with the correct MIME type
(application/json
), but prettify the output for convenience when
access by a human.
You can now retrieve above JSON e.g. by issueing an XMLHttpRequest from JavaScript and use the custom parameter values to control some aspect in your application frontend.