app_rsgi.py 816 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import orjson
  2. from granian.rsgi import Response
  3. JSON_HEADERS = {'content-type': 'application/json'}
  4. PLAINTEXT_HEADERS = {'content-type': 'text/plain; charset=utf-8'}
  5. json_dumps = orjson.dumps
  6. async def route_json(scope, receive):
  7. return Response(
  8. 1, 200, JSON_HEADERS,
  9. json_dumps({'message': 'Hello, world!'}), None, None
  10. )
  11. async def route_plaintext(scope, receive):
  12. return Response(
  13. 2, 200, PLAINTEXT_HEADERS,
  14. None, 'Hello, world!', None
  15. )
  16. async def handle_404(scope, receive):
  17. return Response(
  18. 2, 404, PLAINTEXT_HEADERS,
  19. None, 'Not found', None
  20. )
  21. routes = {
  22. '/json': route_json,
  23. '/plaintext': route_plaintext
  24. }
  25. def main(scope, receive):
  26. handler = routes.get(scope.path, handle_404)
  27. return handler(scope, receive)