* Added a wrapper for get_oas to throw spec info (#12) * Added tests generate_oas * Moved params to Application Co-authored-by: Спиненко Иван ispinenko@ussc.ru <ispinenko@ussc.ru>
23 lines
631 B
Python
23 lines
631 B
Python
from aiohttp.web import Application, json_response, middleware
|
|
|
|
from aiohttp_pydantic import oas
|
|
|
|
from .model import Model
|
|
from .view import PetCollectionView, PetItemView
|
|
|
|
|
|
@middleware
|
|
async def pet_not_found_to_404(request, handler):
|
|
try:
|
|
return await handler(request)
|
|
except Model.NotFound as key:
|
|
return json_response({"error": f"Pet {key} does not exist"}, status=404)
|
|
|
|
|
|
app = Application(middlewares=[pet_not_found_to_404])
|
|
oas.setup(app, version_spec="1.0.1", title_spec="My App")
|
|
|
|
app["model"] = Model()
|
|
app.router.add_view("/pets", PetCollectionView)
|
|
app.router.add_view("/pets/{id}", PetItemView)
|