Browser polling for messages
When the browser makes a poll to get the latest messages, our server should return the messages in a JSON format. To achieve this, we'll need to create a new HTTP endpoint that returns the messages as JSON, without using the Jinja2 templating. We will first construct a new helper function to create a JSON response, setting the correct headers.
Outside of our WebServer, create the following function:
def create_json_response(content):
headers = {'Content-Type': 'application/json'}
json_data = json.dumps(content)
return Response(json_data, status=200, headers=headers) This is similar to our create_html_response from earlier, but here it sets the Content-Type to 'application/json' and converts our data into a valid JSON object.
Now, within the WebServer, create the following HTTP entrypoint:
@http('GET', '/messages')
def get_messages(self, request):
messages = self.message_service.get_all_messages()
return create_json_response(messages) This...