author | Matthew Wild <mwild1@gmail.com> |
Mon, 22 Aug 2022 15:39:02 +0100 | |
changeset 5012 | bd63feda3704 |
parent 4965 | 18774cc621d6 |
permissions | -rw-r--r-- |
3509
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
1 |
--- |
3510
7b1eede1a840
mod_pubsub_post/README: Set stage label to stable
Kim Alvefur <zash@zash.se>
parents:
3509
diff
changeset
|
2 |
labels: |
7b1eede1a840
mod_pubsub_post/README: Set stage label to stable
Kim Alvefur <zash@zash.se>
parents:
3509
diff
changeset
|
3 |
- 'Stage-Stable' |
3509
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
4 |
summary: Publish to PubSub nodes from via HTTP POST/WebHooks |
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
5 |
--- |
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
6 |
|
3104 | 7 |
# Introduction |
8 |
||
3509
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
9 |
This module is a fairly generic WebHook receiver that lets you easily |
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
10 |
publish data to PubSub using a HTTP POST request. The payload can be |
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
11 |
Atom feeds, arbitrary XML, or arbitrary JSON. The type should be |
106b4ae4469b
mod_pubsub_post/README: Mention use as a webhook receiver
Kim Alvefur <zash@zash.se>
parents:
3507
diff
changeset
|
12 |
indicated via the `Content-Type` header. |
3104 | 13 |
|
3723
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
14 |
- JSON data is wrapped in a [XEP-0335] container. |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
15 |
- An Atom feed may have many `<entry>` and each one is published as |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
16 |
its own PubSub item. |
4640
6bcccc63b542
mod_pubsub_post: fix incorrect claim
Jonas Schäfer <jonas@wielicki.name>
parents:
4556
diff
changeset
|
17 |
- Other XML is simply published to the item with ID `current`. |
3723
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
18 |
|
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
19 |
## JSON example |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
20 |
|
3104 | 21 |
``` {.bash} |
22 |
curl http://localhost:5280/pubsub_post/princely_musings \ |
|
23 |
-H "Content-Type: application/json" \ |
|
24 |
--data-binary '{"musing":"To be, or not to be: that is the question"}' |
|
25 |
``` |
|
26 |
||
3723
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
27 |
## Atom example |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
28 |
|
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
29 |
``` {.bash} |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
30 |
curl http://localhost:5280/pubsub_post/princely_musings \ |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
31 |
-H "Content-Type: application/xml" \ |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
32 |
--data-binary '<feed xmlns="http://www.w3.org/2005/Atom"> |
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
33 |
<entry><title>Hello</title></entry></feed>' |
4556
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
34 |
``` |
3723
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
35 |
|
4556
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
36 |
## Simple form-data |
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
37 |
|
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
38 |
``` {.bash} |
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
39 |
curl http://localhost:5280/pubsub_post/princely_musings \ |
c87181a98f29
mod_pubsub_post: Add support for urlencoded form-data
Kim Alvefur <zash@zash.se>
parents:
3723
diff
changeset
|
40 |
--data musing="To be, or not to be: that is the question" |
3723
a6db99c1420a
mod_pubsub_post/README: Add an example of curl-ing Atom data
Kim Alvefur <zash@zash.se>
parents:
3510
diff
changeset
|
41 |
``` |
3157
e0de1fdbc80a
mod_pubsub_post/README: Describe what happens to different data types
Kim Alvefur <zash@zash.se>
parents:
3156
diff
changeset
|
42 |
|
3104 | 43 |
# Configuration |
44 |
||
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
45 |
All settings are optional. |
3104 | 46 |
|
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
47 |
## Actor identification |
3104 | 48 |
|
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
49 |
First we have to figure out who is making the request. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
50 |
This is configured on a per-node basis like this: |
3505
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
51 |
|
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
52 |
``` {.lua} |
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
53 |
-- Per node secrets |
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
54 |
pubsub_post_actors = { |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
55 |
princely_musings = "hamlet@denmark.lit" |
3505
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
56 |
} |
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
57 |
pubsub_post_default_actor = "nobody@nowhere.invalid" |
3505
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
58 |
``` |
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
59 |
|
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
60 |
`pubsub_post_default_actor` is used when trying to publish to a node |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
61 |
that is not listed in `pubsub_post_actors`. Otherwise the IP address |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
62 |
of the connection is used. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
63 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
64 |
## Authentication |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
65 |
|
3505
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
66 |
[WebSub](https://www.w3.org/TR/2018/REC-websub-20180123/) [Authenticated |
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
67 |
Content |
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
68 |
Distribution](https://www.w3.org/TR/2018/REC-websub-20180123/#authenticated-content-distribution) |
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
69 |
authentication is used. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
70 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
71 |
``` {.lua} |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
72 |
pubsub_post_secrets = { |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
73 |
princely_musings = "shared secret" |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
74 |
} |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
75 |
pubsub_post_default_secret = "default secret" |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
76 |
``` |
3505
1df139b157fb
mod_pubsub_post: Add support for WebSub authentication
Kim Alvefur <zash@zash.se>
parents:
3260
diff
changeset
|
77 |
|
3507
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
78 |
`pubsub_post_default_secret` is used when trying to publish to a node |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
79 |
that is not listed in `pubsub_post_secrets`. Otherwise the request |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
80 |
proceeds with the previously identified actor. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
81 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
82 |
::: {.alert .alert-danger} |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
83 |
If configured without a secret and a default actor that has permission |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
84 |
to create nodes the service becomes wide open. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
85 |
::: |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
86 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
87 |
## Authorization |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
88 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
89 |
Authorization is handled via pubsub affiliations. Publishing requires an |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
90 |
affiliation with the _publish_ capability, usually `"publisher"`. |
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
91 |
|
882180b459a0
mod_pubsub_post: Restructure authentication and authorization (BC)
Kim Alvefur <zash@zash.se>
parents:
3506
diff
changeset
|
92 |
### Setting up affiliations |
3260
0992c0398783
mod_pubsub_post/README: Add a heading for affiliation related text
Kim Alvefur <zash@zash.se>
parents:
3157
diff
changeset
|
93 |
|
3156
882f7d5c3ce8
mod_pubsub_post/README: Affiliation management in trunk now
Kim Alvefur <zash@zash.se>
parents:
3155
diff
changeset
|
94 |
Prosodys PubSub module supports [setting affiliations via |
4965
18774cc621d6
mod_pubsub_post/README: Update references to trunk with release numbers
Kim Alvefur <zash@zash.se>
parents:
4846
diff
changeset
|
95 |
XMPP](https://xmpp.org/extensions/xep-0060.html#owner-affiliations), |
18774cc621d6
mod_pubsub_post/README: Update references to trunk with release numbers
Kim Alvefur <zash@zash.se>
parents:
4846
diff
changeset
|
96 |
since 0.11.0, so affiliations can be configured with a capable client. |
3104 | 97 |
|
98 |
It can however be done from another plugin: |
|
99 |
||
100 |
``` {.lua} |
|
101 |
local mod_pubsub = module:depends("pubsub"); |
|
102 |
local pubsub = mod_pubsub.service; |
|
103 |
||
104 |
pubsub:create("princely_musings", true); |
|
105 |
pubsub:set_affiliation("princely_musings", true, "127.0.0.1", "publisher"); |
|
106 |
``` |
|
4846
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
107 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
108 |
## Data mappings |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
109 |
|
4965
18774cc621d6
mod_pubsub_post/README: Update references to trunk with release numbers
Kim Alvefur <zash@zash.se>
parents:
4846
diff
changeset
|
110 |
The datamapper library added in 0.12.0 allows posting JSON and having it |
4846
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
111 |
converted to XML based on a special JSON Schema. |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
112 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
113 |
``` json |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
114 |
{ |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
115 |
"properties" : { |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
116 |
"content" : { |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
117 |
"type" : "string" |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
118 |
}, |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
119 |
"title" : { |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
120 |
"type" : "string" |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
121 |
} |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
122 |
}, |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
123 |
"type" : "object", |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
124 |
"xml" : { |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
125 |
"name" : "musings", |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
126 |
"namespace" : "urn:example:princely" |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
127 |
} |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
128 |
} |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
129 |
``` |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
130 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
131 |
And in the Prosody config file: |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
132 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
133 |
``` lua |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
134 |
pubsub_post_mappings = { |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
135 |
princely_musings = "musings.json"; |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
136 |
} |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
137 |
``` |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
138 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
139 |
Then, POSTing a JSON payload like |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
140 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
141 |
``` json |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
142 |
{ |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
143 |
"content" : "To be, or not to be: that is the question", |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
144 |
"title" : "Soliloquy" |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
145 |
} |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
146 |
``` |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
147 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
148 |
results in a payload like |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
149 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
150 |
``` xml |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
151 |
<musings xmlns="urn:example:princely"> |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
152 |
<title>Soliloquy</title> |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
153 |
<content>To be, or not to be: that is the question</content> |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
154 |
</musings> |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
155 |
``` |
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
156 |
|
8d4b91a703af
mod_pubsub_post: Document JSON to XML mapping capability
Kim Alvefur <zash@zash.se>
parents:
4640
diff
changeset
|
157 |
being published to the node. |