Metadata-Version: 1.1
Name: aiohttp_json_api
Version: 0.10.0
Summary: JSON API driven by aiohttp
Home-page: https://github.com/vovanbo/aiohttp_json_api
Author: Vladimir Bolshakov
Author-email: vovanbo@gmail.com
License: MIT license
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_
        * 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
        .. _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.10.0 (2017-07-10)
        -------------------
        
        * Mass refactoring of schema, fields, validation and decorators
        * Generic approach to setup Schema decorators is used (inspired by Marshmallow)
        * Fields are used only for encode/decode now (with pre/post validation). Additional validators for fields must be created on schema level
        * Custom JSON encoder with support JSONPointer serialization
        * Remove boltons from requirements
        * No more remap input data dictionary with key names to underscores conversion.
        * Add helpers "first" and "make_sentinel" (cherry-picked from boltons)
        * Fix enumeration (choices) support in String field
        
        
        0.9.3 (2017-07-06)
        ------------------
        
        * Setup content-type validation on mutation API methods (application/vnd.api+json is required)
        * Properly get and encode relationships fields
        * Update docs and typing for ensure_identifier Registry's method
        
        
        0.9.2 (2017-07-06)
        ------------------
        
        * Fix bugs related to Python 3.5
        * Generation of documentation on RTD is fixed
        
        
        0.9.1 (2017-07-06)
        ------------------
        
        * Python 3.5 compatibility changes
        
        
        0.9.0 (2017-07-06)
        ------------------
        
        * Handle aiohttp-json-api exceptions and errors in middleware. If exceptions is not related to JSON API errors, then exception is reraised
        * Huge refactoring of RequestContext
        * No more use of boltons cachedproperties, instead use parsing static methods related to each request context' entity
        * Update docs for RequestContext methods
        * Add typings to RequestContext
        
        
        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/
        
Keywords: aiohttp_json_api
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
