Skip to main content

Rapid rest resources for aiohttp

Latest PyPI package version

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 self.key

    # example call: POST to <server>/views
    async def on_post_collection(self, body: dict) -> dict:
        return body


app = web.Application()
app.add_routes(routes)
app['key'] = [1, 2, 4, 5]

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'
  • The items stored as 'app[]' are accessible into view as properties 'self.'

To Do

  • Tests!!
  • Documentation
  • Configurable custom serializers/deserializers

Requirements

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

Metadata

Release files for aiorestapi 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiorestapi 0.1.2
File Size Uploaded
aiorestapi-0.1.2.tar.gz 8.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiorestapi 0.1.2
File Interpreter ABI Platform
aiorestapi-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 17.6 kB

Release files / aiorestapi-0.1.2.tar.gz

Download URL aiorestapi-0.1.2.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bb9380122c14886dc7c9a4d88eb7862ed93f400f0e6e2a1691be0441ffc35cc8
BLAKE2b-256 checksum
How to use checksums
b462d902dcac436c3990342969e1b230bd4eb3f724b20e0467147b9ecc993846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

Release files / aiorestapi-0.1.2-py3-none-any.whl

Download URL aiorestapi-0.1.2-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8227451e69c16c2f043300cc30db8a9e770279e24804cb1c9f2419f2cdb21f34
BLAKE2b-256 checksum
How to use checksums
371f3453deaee231e2613334a24b7b073049a1c30baba7a4d9f69a417fa988f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page