Open r0fls opened 7 years ago
Usage example:
from japronto import Application
app = Application()
@app.get('/')
def hello(request):
return request.Response(text='Hello world!')
app.run(debug=True)
Oh, it looks like you're not ready to implement this :) Didn't read the whole thread... feel free to close.
@r0fls we can keep it open and maybe modify it as and when @squeaky-pl revamps the routing?
Yes, I would like to keep it open, if it takes too much time to revamp routing I am gonna covert it into a recipe.
What's the progress on this?
@squeaky-pl @r0fls Any update about this feature? This is the most "pythonic" and practic way to do routing, like Flask or Sanic.
Any update?
Any update ? @squeaky-pl
Looks great, add this if
to support awaitable handlers.
# import
from inspect import iscoroutinefunction
####
def route(self, path: str = '/', methods: list = []):
'''
Shorthand route decorator. Avoids need to register
handlers to the router directly with `app.router.add_route()`.
'''
def decorator(handler):
async def wrapper(*args, **kwargs):
# check awaitable handler
if iscoroutinefunction(handler):
return await handler(*args, **kwargs)
return handler(*args, **kwargs)
self.router.add_route(path, wrapper, methods=methods)
return wrapper
return decorator
Addresses issue https://github.com/squeaky-pl/japronto/issues/5