Skip to content

Instantly share code, notes, and snippets.

@tamert
Created October 17, 2022 20:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tamert/01a06a5a838209783c682059e676cf16 to your computer and use it in GitHub Desktop.
Save tamert/01a06a5a838209783c682059e676cf16 to your computer and use it in GitHub Desktop.
from aiohttp import web
import requests
routes = web.RouteTableDef()
@routes.get('/coffees')
async def get_coffees(request: web.Request) -> web.Response:
response = requests.get("https://api.sampleapis.com/coffee/hot")
if response.status_code in [200, 201]:
return web.Response(text=response.text, content_type='application/json')
else:
return web.Response(text=str({"status": "failure", "status_code": response.status_code}),
status=404,
content_type='application/json')
@routes.get('/coffees/{coffee_id}')
async def get_coffee(request: web.Request) -> web.Response:
response = requests.get("https://api.sampleapis.com/coffee/hot/%s" % request.match_info.get('coffee_id', None))
if response.status_code in [200, 201]:
return web.Response(text=response.text, content_type='application/json')
else:
return web.Response(text=str({"status": "failure", "status_code": response.status_code}),
status=404,
content_type='application/json')
async def init():
app = web.Application()
app.router.add_routes(routes)
return app
if __name__ == "__main__":
application = init()
web.run_app(application, port=8000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment