Skip to main content

JSON API driven by aiohttp

Project description

=======================================
`JSON API`_ implementation for aiohttp_
=======================================


.. image:: https://img.shields.io/pypi/v/aiohttp_json_api.svg
:target: https://pypi.python.org/pypi/aiohttp_json_api

.. image:: https://img.shields.io/travis/vovanbo/aiohttp_json_api.svg
:target: https://travis-ci.org/vovanbo/aiohttp_json_api

.. image:: https://readthedocs.org/projects/aiohttp-json-api/badge/?version=latest
:target: https://aiohttp-json-api.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://pyup.io/repos/github/vovanbo/aiohttp_json_api/shield.svg
:target: https://pyup.io/repos/github/vovanbo/aiohttp_json_api/
:alt: Updates


Introduction
------------

This project heavily inspired by py-jsonapi_ (author is `Benedikt Schmitt`_).
Some parts of this project is improved and refactored dev-schema_ branch
of **py-jsonapi**. At beginning of aiohttp-json-api_ this branch
was a great, but not finished implementation of JSON API with
*schema controllers*. Also, py-jsonapi_ is not asynchronous and use inside
self-implemented Request/Response classes.

Some of base entities of **py-jsonapi** was replaced with **aiohttp**
server's objects, some of it was divided into new separate entities
(e.g. :class:`.context.RequestContext` or :class:`.registry.Registry`).

* Free software: MIT license
* Documentation: https://aiohttp-json-api.readthedocs.io


Requirements
------------

* **Python 3.6** or newer
* aiohttp_
* boltons_
* inflection_
* jsonpointer_
* dateutil_
* trafaret_


Todo
----

* Documentation
* Tests
* Example application
* Features description
* Customizable payload keys inflection (default is `dasherize` <-> `underscore`)
* Support for JSON API extensions (bulk creation etc.)


Credits
-------

This package was created with Cookiecutter_ and the
`cookiecutter-pypackage`_ project template.


.. _aiohttp-json-api: https://github.com/vovanbo/aiohttp_json_api
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage
.. _JSON API: http://jsonapi.org
.. _aiohttp: http://aiohttp.readthedocs.io/en/stable/
.. _py-jsonapi: https://github.com/benediktschmitt/py-jsonapi
.. _dev-schema: https://github.com/benediktschmitt/py-jsonapi/tree/dev-schema
.. _`Benedikt Schmitt`: https://github.com/benediktschmitt
.. _boltons: https://boltons.readthedocs.io/en/latest/
.. _inflection: https://inflection.readthedocs.io/en/latest/
.. _jsonpointer: https://python-json-pointer.readthedocs.io/en/latest/index.html
.. _dateutil: https://dateutil.readthedocs.io/en/stable/
.. _trafaret: http://trafaret.readthedocs.io/en/latest/


=======
History
=======

0.7.0 (2017-07-03)
------------------

* Setup of JSON API must be imported from package directly
* Fix bugs with decode fields and allow None values


0.6.2 (2017-06-29)
------------------

* Update HISTORY


0.6.1 (2017-06-29)
------------------

* Fix bug with Enum choices of String field


0.6.0 (2017-06-29)
------------------

* Return resource in update method of Schema class. This will be helpful in inherit classes of Schemas.


0.5.5 (2017-06-15)
------------------

* Setup auto-deploy to PyPI in Travis CI

0.5.4 (2017-06-15)
------------------

* Initial release on PyPI

0.5.3 (2017-06-14)
------------------

* Improve documentation

0.5.0 (2017-06-14)
------------------

* Don't use attrs_ package anymore
* Refactor requirements (move it into `setup.py`)

0.4.0 (2017-06-13)
------------------

* Schema imports refactoring (e.g. don't use ``aiohttp_json_api.schema.schema.Schema`` anymore)

0.3.0 (2017-06-13)
------------------

* Upgrade requirements

0.2.0 (2017-05-26)
------------------

* Fix setup.py
* Add test for Decimal trafaret field

0.1.1 (2017-05-26)
------------------

* Dirty initial version


.. _attrs: http://www.attrs.org/en/stable/


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aiohttp-json-api, version 0.7.0
Filename, size File type Python version Upload date Hashes
Filename, size aiohttp_json_api-0.7.0-py36-none-any.whl (42.1 kB) File type Wheel Python version py36 Upload date Hashes View
Filename, size aiohttp_json_api-0.7.0.tar.gz (43.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page