Yet another way to build APIs using AIOHTTP framework.
Follow documentation to know what you can do with AIOAPI.
$ pip install aioapiBelow you can find a simple, but powerful example of AIOAPI library usage:
import aioapi as api
from aioapi import Body, PathParam
from aioapi.middlewares import validation_error_middleware
from aiohttp import web
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int = 42
async def hello_body(user_id: PathParam[int], body: Body[User]):
user = body.cleaned
return web.json_response(
{"id": user_id.cleaned, "name": user.name, "age": user.age}
)
def main():
app = web.Application()
app.add_routes([api.post("/hello/{user_id}", hello_body)])
app.middlewares.append(validation_error_middleware)
web.run_app(app)
if __name__ == "__main__":
main()And there are also more examples of usage at examples/ directory.
To run them use command below:
$ make exampleTo work on the AIOAPI codebase, you'll want to clone the project locally and install the required dependencies via poetry:
$ git clone [email protected]:Gr1N/aioapi.git
$ make installTo run tests and linters use command below:
$ make lint && make testIf you want to run only tests or linters you can explicitly specify what you want to run, e.g.:
$ make lint-blackIf you're interesting in project's future you can find milestones and plans at projects page.
AIOAPI is licensed under the MIT license. See the license file for details.