Skip to content
This repository has been archived by the owner on Aug 16, 2023. It is now read-only.
/ aiorest Public archive
forked from aio-libs-abandoned/aiorest

REST interface for server based on aiohttp

License

Notifications You must be signed in to change notification settings

decentfox/aiorest

 
 

Repository files navigation

aiorest

JSON REST framework based on aiohttp (an asyncio (PEP 3156) http server).

https://travis-ci.org/aio-libs/aiorest.svg?branch=master

aiorest development has stopped

The project always was in experimental status: we have tried to make the proof of concept for aiohttp high level server.

Now the work is done, the most important parts transplanted to aiohttp.web: Request and Response.

Some aiorest features are not supported by aiohttp.web yet: sessions, CORS and security.

We are working hard on the issue by making aiohttp extension libraries for those ones.

We will keep aiorest work on top of aiohttp new versions for a while.

Please report about incompatibility bugs to aiorest github issue tracker -- we'll fix those.

Example usage

Simple REST server can be run like this:

import asyncio
import aiohttp
import aiorest


# define a simple request handler
# which accept no arguments
# and responds with json
def hello(request):
    return {'hello': 'world'}


loop = asyncio.get_event_loop()
server = aiorest.RESTServer(hostname='127.0.0.1')

# configure routes
server.add_url('GET', '/hello', hello)
# create server
srv = loop.run_until_complete(loop.create_server(
    server.make_handler(loop=loop), '127.0.0.1', 8080))


@asyncio.coroutine
def query():
    resp = yield from aiohttp.request(
        'GET', 'http://127.0.0.1:8080/hello', loop=loop)
    data = yield from resp.read_and_close(decode=True)
    print(data)


loop.run_until_complete(query())
srv.close()
loop.run_until_complete(srv.wait_closed())
loop.close()

this will print {'hello': 'world'} json

See examples for more.

Requirements

License

aiorest is offered under the MIT license.

About

REST interface for server based on aiohttp

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.3%
  • Makefile 0.7%