comparison mod_rest/README.markdown @ 3808:02164f8aebac

mod_rest: Add an example Flask thing
author Kim Alvefur <zash@zash.se>
date Wed, 01 Jan 2020 12:06:46 +0100
parents f88e07630e4e
children a70f5a6c7f01
comparison
equal deleted inserted replaced
3807:b0449faca52b 3808:02164f8aebac
111 The payload MUST contain one (1) `message`, `presence` or `iq` stanza. 111 The payload MUST contain one (1) `message`, `presence` or `iq` stanza.
112 112
113 The stanzas MUST NOT have an `xmlns` attribute, and the default/empty 113 The stanzas MUST NOT have an `xmlns` attribute, and the default/empty
114 namespace is treated as `jabber:client`. 114 namespace is treated as `jabber:client`.
115 115
116 # Examples
117
118 ## Python / Flask
119
120 Simple echo bot that responds to messages:
121
122 ```python
123 from flask import Flask, Response, request
124 import xml.etree.ElementTree as ET
125
126 app = Flask('echobot')
127
128 @app.before_request
129 def parse():
130 request.stanza = ET.fromstring(request.data)
131
132 @app.route('/', methods = ['POST'])
133 def hello():
134 if request.stanza.tag == 'message':
135 return Response('<message><body>Yes this is bot</body></message>', content_type='application/xmpp+xml')
136
137 return Response(status = 501)
138
139 if __name__ == '__main__':
140 app.run()
141 ```
142
116 # Compatibility 143 # Compatibility
117 144
118 Requires Prosody trunk / 0.12 145 Requires Prosody trunk / 0.12