Software /
code /
prosody-modules
Comparison
mod_rest/README.markdown @ 3802:f88e07630e4e
mod_rest: Add support for simple Bearer token auth
Token specified in config
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 31 Dec 2019 03:37:46 +0100 |
parent | 3801:d59fb4dcf100 |
child | 3808:02164f8aebac |
comparison
equal
deleted
inserted
replaced
3801:d59fb4dcf100 | 3802:f88e07630e4e |
---|---|
10 Prosody. It can be used to build bots and components implemented as HTTP | 10 Prosody. It can be used to build bots and components implemented as HTTP |
11 services. | 11 services. |
12 | 12 |
13 # Usage | 13 # Usage |
14 | 14 |
15 Note that there is currently **no authentication**, so be careful with | |
16 exposing the API endpoint to the Internet. | |
17 | |
18 ## Enabling | 15 ## Enabling |
19 | 16 |
20 ``` {.lua} | 17 ``` {.lua} |
21 Component "rest.example.net" "rest" | 18 Component "rest.example.net" "rest" |
19 rest_credentials = "Bearer dmVyeSBzZWNyZXQgdG9rZW4K" | |
22 ``` | 20 ``` |
23 | 21 |
24 ## Sending stanzas | 22 ## Sending stanzas |
25 | 23 |
26 The API endpoint becomes available at the path `/rest`, so the full URL | 24 The API endpoint becomes available at the path `/rest`, so the full URL |
28 | 26 |
29 To try it, simply `curl` an XML stanza payload: | 27 To try it, simply `curl` an XML stanza payload: |
30 | 28 |
31 ``` {.sh} | 29 ``` {.sh} |
32 curl https://prosody.example:5281/rest \ | 30 curl https://prosody.example:5281/rest \ |
31 --oauth2-bearer dmVyeSBzZWNyZXQgdG9rZW4K \ | |
33 -H 'Content-Type: application/xmpp+xml' \ | 32 -H 'Content-Type: application/xmpp+xml' \ |
34 --data-binary '<message type="chat" to="user@example.org"> | 33 --data-binary '<message type="chat" to="user@example.org"> |
35 <body>Hello!</body> | 34 <body>Hello!</body> |
36 </body>' | 35 </body>' |
37 ``` | 36 ``` |
43 A POST containing an `<iq>` stanza automatically wait for the reply, | 42 A POST containing an `<iq>` stanza automatically wait for the reply, |
44 long-polling style. | 43 long-polling style. |
45 | 44 |
46 ``` {.sh} | 45 ``` {.sh} |
47 curl https://prosody.example:5281/rest \ | 46 curl https://prosody.example:5281/rest \ |
47 --oauth2-bearer dmVyeSBzZWNyZXQgdG9rZW4K \ | |
48 -H 'Content-Type: application/xmpp+xml' \ | 48 -H 'Content-Type: application/xmpp+xml' \ |
49 --data-binary '<iq type="get" to="example.net"> | 49 --data-binary '<iq type="get" to="example.net"> |
50 <ping xmlns="urn:xmpp:ping"/> | 50 <ping xmlns="urn:xmpp:ping"/> |
51 </iq>' | 51 </iq>' |
52 ``` | 52 ``` |
60 | 60 |
61 TL;DR: Set this webhook callback URL, get XML `POST`-ed there. | 61 TL;DR: Set this webhook callback URL, get XML `POST`-ed there. |
62 | 62 |
63 ``` {.lua} | 63 ``` {.lua} |
64 Component "rest.example.net" "rest" | 64 Component "rest.example.net" "rest" |
65 rest_credentials = "Bearer dmVyeSBzZWNyZXQgdG9rZW4K" | |
65 rest_callback_url = "http://my-api.example:9999/stanzas" | 66 rest_callback_url = "http://my-api.example:9999/stanzas" |
66 ``` | 67 ``` |
67 | 68 |
68 Example callback looks like: | 69 Example callback looks like: |
69 | 70 |