Router Configurator for you project.
Project description
Installation
pip install urouter
Supported web frameworks
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.
Source Distribution
urouter-0.1.1.tar.gz
(5.9 kB
view hashes)
Built Distribution
Close
Hashes for urouter-0.1.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c075217c9ad1abd548085561cae4a9155d3907f8d2cf5b7f5397b3f59441d8 |
|
MD5 | f60cb6e92b486cff20a3a33b4939eac7 |
|
BLAKE2b-256 | f58156b3da577395bd28d5c241626b774aee8a82f3bfbfe336522710996bbbf1 |