aiorest
JSON REST framework based on aiohttp (an asyncio (PEP 3156) http server).
.. image:: https://travis-ci.org/aio-libs/aiorest.svg?branch=master
:target: https://travis-ci.org/aio-libs/aiorest
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',
loop=loop)
configure routes
server.add_url('GET', '/hello', hello)
create server
srv = loop.run_until_complete(loop.create_server(
server.make_handler, '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 <https://github.com/aio-libs/aiorest/tree/master/examples>
_ for more.
Requirements
License
aiorest is offered under the MIT license.
CHANGES
0.4.0 (2015-01-18)
^^^^^^^^^^^^^^^^^^
-
The aiorest library development has stopped, use aiohttp.web instead.
-
Update aiorest code to be compatible with aiohttp 0.14 release.
0.3.1 (2014-12-22)
^^^^^^^^^^^^^^^^^^
- Fixed exceptions logging for unhandled errors
0.3.0 (2014-12-17)
^^^^^^^^^^^^^^^^^^
- Made aiorest compatible to aiohttp v0.12
0.2.5 (2014-10-30)
^^^^^^^^^^^^^^^^^^
- Fix response.write_eof() to follow aiohttp changes
0.2.4 (2014-09-12)
^^^^^^^^^^^^^^^^^^
- Make loop keywork-only parameter in create_session_factory() function
0.2.3 (2014-08-28)
^^^^^^^^^^^^^^^^^^
- Redis session switched from asyncio_redis to aioredis
0.2.2 (2014-08-15)
^^^^^^^^^^^^^^^^^^
0.1.1 (2014-07-09)
^^^^^^^^^^^^^^^^^^
- Switched to aiohttp v0.9.0
0.1.0 (2014-07-07)
^^^^^^^^^^^^^^^^^^