Router Configurator for you project.
Project description
Installation
pip install urouter
Quickstart
Define handler in router
from aiohttp import web from urouter.exporters.aiohttp_exporter import AioHttpRouter app = web.Application() async def handler(request): return web.Response(text="Hello World") router = AioHttpRouter(app) router.get("/home", handler) # At this point aiohttp is ready to register all routes router.export()
Define global middleware for all routes
from aiohttp import web from urouter.exporters.aiohttp_exporter import AioHttpRouter app = web.Application() @web.middleware async def info_middleware(request, handler): # some operation before handle request response = await handler(request) return response async def handler(request): return web.Response(text="Hello World") router = (AioHttpRouter(app) .use(info_middleware)) # Register handler router.get("/home", handler) # At this point aiohttp is ready to register all routes router.export()
Define inline middleware (run only for specific handler)
from aiohttp import web from urouter.exporters.aiohttp_exporter import AioHttpRouter app = web.Application() @web.middleware async def info_middleware(request, handler): # some operation before handle request response = await handler(request) return response async def handler(request): return web.Response(text="Hello World") router = AioHttpRouter(app) # Middleware registered only for `/home` route router.include(info_middleware).get("/home", handler) # At this point aiohttp is ready to register all routes router.export()
Define subrouter
from aiohttp import web from urouter.exporters.aiohttp_exporter import AioHttpRouter app = web.Application() @web.middleware async def info_middleware(request, handler): # some operation before handle request response = await handler(request) return response async def handler(request): return web.Response(text="Hello World") async def sub_handler(request): return web.Response(text="Hello World") router = AioHttpRouter(app) router.include(info_middleware).get("/home", handler) # Create new router subrouter = router.make_router() subrouter.get("/hello", sub_handler) # All registered router become starts with prefix `/sub/` # `/hello` becomes `/sub/hello` router.mount("/sub", subrouter) # At this point aiohttp is ready to register all routes router.export()
Private/Public router
from aiohttp import web from urouter.exporters.aiohttp_exporter import AioHttpRouter app = web.Application() async def auth_middleware(request, handler): return web.HTTPForbidden() async def public(request): return web.Response(text="Hello World") async def private(request): return web.Response(text="Private Zone") router = AioHttpRouter(app) private_route = router.make_router().use(auth_middleware) # Adding public handler router.get("/home", public) # Adding public handler private_route.get("/private", private) # Mount private router to main router router.mount("/", private_route) # At this point aiohttp is ready to register all routes router.export()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size urouter-0.1.1-py2.py3-none-any.whl (6.1 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size urouter-0.1.1.tar.gz (5.9 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for urouter-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c075217c9ad1abd548085561cae4a9155d3907f8d2cf5b7f5397b3f59441d8 |
|
MD5 | f60cb6e92b486cff20a3a33b4939eac7 |
|
BLAKE2-256 | f58156b3da577395bd28d5c241626b774aee8a82f3bfbfe336522710996bbbf1 |