Skip to main content

Rapid rest resources for aiohttp

Project description

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

Project details


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.2.tar.gz (8.3 kB view hashes)

Uploaded Source

Built Distribution

aiorestapi-0.1.2-py3-none-any.whl (9.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page