equal
deleted
inserted
replaced
104 local pubsub = mod_pubsub.service; |
104 local pubsub = mod_pubsub.service; |
105 |
105 |
106 pubsub:create("princely_musings", true); |
106 pubsub:create("princely_musings", true); |
107 pubsub:set_affiliation("princely_musings", true, "127.0.0.1", "publisher"); |
107 pubsub:set_affiliation("princely_musings", true, "127.0.0.1", "publisher"); |
108 ``` |
108 ``` |
|
109 |
|
110 ## Data mappings |
|
111 |
|
112 The datamapper library added in trunk allows posting JSON and having it |
|
113 converted to XML based on a special JSON Schema. |
|
114 |
|
115 ``` json |
|
116 { |
|
117 "properties" : { |
|
118 "content" : { |
|
119 "type" : "string" |
|
120 }, |
|
121 "title" : { |
|
122 "type" : "string" |
|
123 } |
|
124 }, |
|
125 "type" : "object", |
|
126 "xml" : { |
|
127 "name" : "musings", |
|
128 "namespace" : "urn:example:princely" |
|
129 } |
|
130 } |
|
131 ``` |
|
132 |
|
133 And in the Prosody config file: |
|
134 |
|
135 ``` lua |
|
136 pubsub_post_mappings = { |
|
137 princely_musings = "musings.json"; |
|
138 } |
|
139 ``` |
|
140 |
|
141 Then, POSTing a JSON payload like |
|
142 |
|
143 ``` json |
|
144 { |
|
145 "content" : "To be, or not to be: that is the question", |
|
146 "title" : "Soliloquy" |
|
147 } |
|
148 ``` |
|
149 |
|
150 results in a payload like |
|
151 |
|
152 ``` xml |
|
153 <musings xmlns="urn:example:princely"> |
|
154 <title>Soliloquy</title> |
|
155 <content>To be, or not to be: that is the question</content> |
|
156 </musings> |
|
157 ``` |
|
158 |
|
159 being published to the node. |