Software /
code /
prosody-modules
Comparison
mod_rest/README.markdown @ 3794:4b258329e6e4
mod_rest: Initial commit of another RESTful API module
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 30 Dec 2019 04:04:34 +0100 |
child | 3795:f51308fcba83 |
comparison
equal
deleted
inserted
replaced
3793:0d3926e49b55 | 3794:4b258329e6e4 |
---|---|
1 --- | |
2 labels: | |
3 - 'Stage-Alpha' | |
4 summary: RESTful XMPP API | |
5 --- | |
6 | |
7 # Introduction | |
8 | |
9 This is yet another RESTful API for sending stanzas via Prosody. | |
10 | |
11 # Usage | |
12 | |
13 Note that there is currently **no authentication**, so be careful with | |
14 exposing the API endpoint to the Internet. | |
15 | |
16 ## Enabling | |
17 | |
18 ``` {.lua} | |
19 Component "rest.example.net" "rest" | |
20 ``` | |
21 | |
22 ## Sending stanzas | |
23 | |
24 The API endpoint becomes available at the path `/rest`, so the full URL | |
25 will be something like `https://your-prosody.example:5281/rest`. | |
26 | |
27 To try it, simply `curl` an XML stanza payload: | |
28 | |
29 ``` {.sh} | |
30 curl https://prosody.example:5281/rest \ | |
31 -H 'Content-Type: application/xmpp+xml' \ | |
32 --data-binary '<message type="chat" to="user@example.org"> | |
33 <body>Hello!</body> | |
34 </body>' | |
35 ``` | |
36 | |
37 The `Content-Type` **MUST** be `application/xmpp+xml`. | |
38 | |
39 ### Replies | |
40 | |
41 A POST containing an `<iq>` stanza automatically wait for the reply, | |
42 long-polling style. | |
43 | |
44 ``` {.sh} | |
45 curl https://prosody.example:5281/rest \ | |
46 -H 'Content-Type: application/xmpp+xml' \ | |
47 --data-binary '<iq type="get" to="example.net"> | |
48 <ping xmlns="urn:xmpp:ping"/> | |
49 </iq>' | |
50 ``` | |
51 | |
52 # Compatibility | |
53 | |
54 Requires Prosody trunk / 0.12 |