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.1 (2017-07-04)
------------------

* Fix bugs with validation of resource identifier in relationships fields
* Add typings for base fields


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.

Source Distribution

aiohttp_json_api-0.7.1.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

aiohttp_json_api-0.7.1-py36-none-any.whl (42.3 kB view details)

Uploaded Python 3.6

File details

Details for the file aiohttp_json_api-0.7.1.tar.gz.

File metadata

File hashes

Hashes for aiohttp_json_api-0.7.1.tar.gz
Algorithm Hash digest
SHA256 068e7cbe325b7faf87832a9c12aa51d2a277a740858f6d0ef78ff6c68e18bb03
MD5 99dd86741f26fd4073e05f1d0e29bf20
BLAKE2b-256 30ac3f3f1ed9e4c85c0da738501ae7ba612f387ac04863fe862192e26c4c6a21

See more details on using hashes here.

File details

Details for the file aiohttp_json_api-0.7.1-py36-none-any.whl.

File metadata

File hashes

Hashes for aiohttp_json_api-0.7.1-py36-none-any.whl
Algorithm Hash digest
SHA256 458b3a7a2826356eda6f4bfe9fe43c9b40db5ffb09b39c22a6ff0dbef5759074
MD5 787f31b56c962dd3eed877969bc1cdbb
BLAKE2b-256 c4c72d0a1f66bdeea66a28f4c09914016d595d2d760bc943622606b53e3c2b1a

See more details on using hashes here.

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