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.2.tar.gz
(4.2 kB
view details)
Built Distribution
File details
Details for the file urouter-0.1.2.tar.gz
.
File metadata
- Download URL: urouter-0.1.2.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cd9636ba444e996ab1749011ab1a0e65f3b607adeab39bc90af1fec0232dac7 |
|
MD5 | 5fa962bccabc962fc0278a9d5c693af0 |
|
BLAKE2b-256 | 752c9157582c079dd950972bf47d033aa092f833e98c707ef21ea4d3e688a136 |
File details
Details for the file urouter-0.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: urouter-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e48b2dcafe4f3d92c368949a17be7ec56fa251c7f6f15f191346c241559eab |
|
MD5 | 1042f197f465bd37481c1da09a39b489 |
|
BLAKE2b-256 | 8ef13fe0e3787b383cd1e8ee0403bfeea74808e0885d26c7494db0d508e1ab2d |