Rapid rest resources for aiohttp
Project description
Rapid rest resources for aiohttp
Key Features
- Supports both client and server side of HTTP protocol.
Getting started
aiorestapi
allows you to quickly create a rest resource in a few steps. It automatically creates the resource routes on the collections or individual items; it's simply to specify the suffix '_collection' or '_item' on the methods.
The serialization / deserialization of results / requests occurs transparently using python dictionaries.
An example creating a simple rest resource
from aiohttp import web
from aiorestapi import RestView, routes
@routes.resource("/views")
class RestResource(RestView):
# example call: GET to <server>/views?start=10
async def on_get_collection(self, start=0) -> list:
return [
{"id": int(start)+1, "value": 1},
{"id": int(start)+2, "value": 2},
]
# example call: GET <server>/views/80
async def on_get_item(self, id: str) -> dict:
return {"id": int(id), "value": 1}
# example call: POST to <server>/views
async def on_post_collection(self, body: dict) -> dict:
return body
app = web.Application()
app.add_routes(routes)
if __name__ == '__main__':
web.run_app(app)
Installation
It's very simple to install aiorestapi:
pip install aiorestapi
Notes
- @routes.resource decorator the decorator automatically adds the routes to '/myresources' and '/myresources/{id}'
- From the RestView object it is possible to access the aiohttp request with self.request
- The query parameters are automatically converted into parameters of the view method.
- If requests have a body it is necessary to specify in the method a parameter called 'body'
- If requests are to the single item it is necessary to specify a parameter called 'id'
To Do
- Tests!!
- Documentation
- Configurable custom serializers/deserializers
Requirements
- Python >= 3.6
- aiohttp
License
aiorestapi
is offered under the Apache 2 license.
Source code
The latest developer version is available in a GitHub repository: https://github.com/aiselis/aiorestapi
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
aiorestapi-0.1.1.tar.gz
(4.5 kB
view hashes)
Built Distribution
Close
Hashes for aiorestapi-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 313d31f971dd7fabdaec7acb9e7bb1a7e6bb39c7748e5483ea7666a6c084bdc3 |
|
MD5 | 01634eb767947c0cf0dec2d6f553abe0 |
|
BLAKE2b-256 | 9a5814a38a6baad9f19f663e0b527850d9528785997b3efaba34b68dbf8a203b |