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.5** 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.8.2 (2017-07-05)
------------------
* Properly handle error with wrong relation name (raise HTTP 400)
0.8.1 (2017-07-05)
------------------
* Fix bdist_wheel python tag to support Python 3.5
0.8.0 (2017-07-05)
------------------
* Python 3.5 support (avoid usage of Python 3.6 format strings)
* Registry is plain object now
* Custom Registry support (`registry_class` parameter in ``aiohttp_json_api.setup_jsonapi`` method)
* Log debugging information at start about registered resources, methods and routes
* Use OrderedDict inside SchemaMeta
0.7.2 (2017-07-04)
------------------
* Fix bug with JSONPointer when part passed via __truediv__ is integer
* Validate relationship object before adding relationship in ToMany field
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/
`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.5** 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.8.2 (2017-07-05)
------------------
* Properly handle error with wrong relation name (raise HTTP 400)
0.8.1 (2017-07-05)
------------------
* Fix bdist_wheel python tag to support Python 3.5
0.8.0 (2017-07-05)
------------------
* Python 3.5 support (avoid usage of Python 3.6 format strings)
* Registry is plain object now
* Custom Registry support (`registry_class` parameter in ``aiohttp_json_api.setup_jsonapi`` method)
* Log debugging information at start about registered resources, methods and routes
* Use OrderedDict inside SchemaMeta
0.7.2 (2017-07-04)
------------------
* Fix bug with JSONPointer when part passed via __truediv__ is integer
* Validate relationship object before adding relationship in ToMany field
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
Release history Release notifications | RSS feed
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.8.2.tar.gz
(44.6 kB
view details)
Built Distribution
File details
Details for the file aiohttp_json_api-0.8.2.tar.gz
.
File metadata
- Download URL: aiohttp_json_api-0.8.2.tar.gz
- Upload date:
- Size: 44.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7eaafb0c6d5ccff0a4829b5613aafa74b79ca1fc7f2111455ce3b5bee5e61dd |
|
MD5 | 0e60e0057515a434a2377269746ec203 |
|
BLAKE2b-256 | a50c5f03e8dbd379748a1c2f9bd3c05eaa6a72da73dea92c39b6978d3e771e87 |
File details
Details for the file aiohttp_json_api-0.8.2-py35.py36-none-any.whl
.
File metadata
- Download URL: aiohttp_json_api-0.8.2-py35.py36-none-any.whl
- Upload date:
- Size: 43.3 kB
- Tags: Python 3.5, Python 3.6
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d8a471e193a480ae29554c6efb82a4f1627f3d1b3c42a1fd1206662ef27f627 |
|
MD5 | c290f12d7ad5ae61e8fc030b0da7f1ae |
|
BLAKE2b-256 | cb7a65c22ae779fd46b8b2dedc320b76888d5e9af11f8914b788a6def4a20673 |