Yet another way to build APIs using AIOHTTP
framework.
Follow documentation to know what you can do with AIOAPI
.
$ pip install aioapi
Below 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 example
To work on the AIOAPI
codebase, you'll want to clone the project locally and install the required dependencies via poetry:
$ git clone git@github.com:Gr1N/aioapi.git
$ make install
To run tests and linters use command below:
$ make lint && make test
If you want to run only tests or linters you can explicitly specify what you want to run, e.g.:
$ make lint-black
If 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.