{ "info": { "author": "Sassoo", "author_email": "noreply@devnull.seriously", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP" ], "description": "drfjsonapi\n======================================\n\n|build-status-image| |pypi-version|\n\nOverview\n--------\n\nJSON API reference implementation for Django Rest Framework\n\nThis is an extremely thorough implementation of the JSON API 1.0 specification\nfor the Django Rest Framework. It has strict error handling of non-compliant\nclients & follows all of the MUST's of the spec (or will soon where missing).\n\nKnown incomplete JSON API spec features/guidelines are:\n\n- Error object pointers\n- \"Relationship Links\"\n\nError object pointers isn't very great currently. It handles field-level,\nresource-level, & relationship \"pointer\" construction just fine but I\ndon't think it will handle any sort of complex nested field errors. The\npointer may not be accurate. I'll have to test & figure out a way to do\nthat properly with DRF & it's native ValidationError field names.\n\nThis matters when you look at RFC 6901. We may need something more robust\nhere as an additional DRF plugin that drfjsonapi requires.\n\n\nRelationship links are the \"self\" member of the links object for relationships.\nCurrently, ember doesn't support relationship modificiation for that endpoint\nso I have no incentive yet to write it. Having said that, some abstractions\nhave already been written in this library to make the transition easy in the\nfuture.\n\nAside from those known limitations this library is REALLY complete. A TON of\nfocus & attention was spent on meaningful errors & good exception handling.\nMuch more to come on that front as I'm aware needs to be more thorough but\nthose enhancements will come without needing to worry about the JSON API spec.\n\nA breakdown of notable features currently implemented that you'd want in any\nJSON API server implementation are:\n\n- ``filter`` query params (spanning relationships)\n- ``include`` query params (spanning relationships)\n- ``page`` query params\n- ``sort`` query params\n- related resource links\n- ridiculously easy to follow code\n- comprehensive error handling (parsers, serializers, views, etc)\n- error coalescing\n- hooks for almost every part of the JSON API processing pipeline\n- good quality code comments\n\nRequirements\n------------\n\n- Python (2.7, 3.3, 3.4)\n- Django (1.6, 1.7, 1.8)\n- Django REST Framework (2.4, 3.0, 3.1)\n\nInstallation\n------------\n\nInstall using ``pip``\\ \u2026\n\n.. code:: bash\n\n $ pip install drfjsonapi\n\nExample\n-------\n\nTODO: Write example.\n\nTesting\n-------\n\nInstall testing requirements.\n\n.. code:: bash\n\n $ pip install -r requirements.txt\n\nRun with runtests.\n\n.. code:: bash\n\n $ ./runtests.py\n\nYou can also use the excellent `tox`_ testing tool to run the tests\nagainst all supported versions of Python and Django. Install tox\nglobally, and then simply run:\n\n.. code:: bash\n\n $ tox\n\nDocumentation\n-------------\n\nTo build the documentation, you\u2019ll need to install ``mkdocs``.\n\n.. code:: bash\n\n $ pip install mkdocs\n\nTo preview the documentation:\n\n.. code:: bash\n\n $ mkdocs serve\n Running at: http://127.0.0.1:8000/\n\nTo build the documentation:\n\n.. code:: bash\n\n $ mkdocs build\n\n.. _tox: http://tox.readthedocs.org/en/latest/\n\n.. |build-status-image| image:: https://secure.travis-ci.org/sassoo/drfjsonapi.svg?branch=master\n :target: http://travis-ci.org/sassoo/drfjsonapi?branch=master\n.. |pypi-version| image:: https://img.shields.io/pypi/v/drfjsonapi.svg\n :target: https://pypi.python.org/pypi/drfjsonapi\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sassoo/drfjsonapi", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "drfjsonapi", "package_url": "https://pypi.org/project/drfjsonapi/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/drfjsonapi/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/sassoo/drfjsonapi" }, "release_url": "https://pypi.org/project/drfjsonapi/0.4.0/", "requires_dist": null, "requires_python": null, "summary": "JSON API reference implementation for Django Rest Framework", "version": "0.4.0" }, "last_serial": 2048240, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "eaf0f1e2af5b4ff80566865810708b4b", "sha256": "3b9a24611be7ce5901d66d66ca703052f17388eaa3c16db765e73a8a1b0b6c79" }, "downloads": -1, "filename": "drfjsonapi-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eaf0f1e2af5b4ff80566865810708b4b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25428, "upload_time": "2016-03-18T14:48:42", "url": "https://files.pythonhosted.org/packages/23/30/f79e4421e94243e5df9a00d3ae119a8b9111c6f4768e79bc70df7b2ea782/drfjsonapi-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cd8443d297bdb22bd4375e083ad742e", "sha256": "2c3c16ecb197e560e076e22cd71bb22adbe18fc716f6a2e51069137015138954" }, "downloads": -1, "filename": "drfjsonapi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0cd8443d297bdb22bd4375e083ad742e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21635, "upload_time": "2016-03-18T14:48:33", "url": "https://files.pythonhosted.org/packages/0b/19/e0aacf65804c65f82efe0a13ed3d7f21ef621cfc253034683de666efeb62/drfjsonapi-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7c02008fd3004539135572fef0594529", "sha256": "780d5a3d747f15663cf672c07d3435a0d2cf37400efacf9bbb7d969ed1085633" }, "downloads": -1, "filename": "drfjsonapi-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c02008fd3004539135572fef0594529", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 25418, "upload_time": "2016-03-18T14:52:31", "url": "https://files.pythonhosted.org/packages/66/0f/7028d46f8af38e6c05d35210fdaba1a841b0eab845adef3cbe9411f47ed1/drfjsonapi-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9b9b7099fcc020b727cc8638162b722", "sha256": "eff6c0696dfc593ba6d520ab829cd49986a5b363ea7651f9bce83cb358c1e8c7" }, "downloads": -1, "filename": "drfjsonapi-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b9b9b7099fcc020b727cc8638162b722", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21540, "upload_time": "2016-03-18T14:52:07", "url": "https://files.pythonhosted.org/packages/f2/a3/5de5b4464f7a3b6c1503d2ae5c1773373bd69f1bae986ad605b9857e47dd/drfjsonapi-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "015e56452f1721dda3be04bea195027a", "sha256": "0feb87dfb0cee616a1d5b61875283a9292fb5b41e47e23e9a76023e271c8035a" }, "downloads": -1, "filename": "drfjsonapi-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "015e56452f1721dda3be04bea195027a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26662, "upload_time": "2016-03-21T13:03:46", "url": "https://files.pythonhosted.org/packages/00/36/6ad677ea01a3829b2c09f8e5fbb2d6aa6557b1ffcf50e513bc5ce4ea50f7/drfjsonapi-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d1cf80dc104249db54335f33f089494", "sha256": "4ed62665898852696b08c308ab8ee0b0f5888955641e3bec93f3ad2ab9cb4e07" }, "downloads": -1, "filename": "drfjsonapi-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8d1cf80dc104249db54335f33f089494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22923, "upload_time": "2016-03-21T13:03:37", "url": "https://files.pythonhosted.org/packages/ae/20/80c3192edd41fc6994300bb37bda6d1dad256e2d9e0f86f4a19befe4b376/drfjsonapi-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e4d11e07463ad1e2cd303bd59398b6c3", "sha256": "84ca8151d8d049fa637fdf3da39f957a806dfdfe870fcce5167bcbf4db079d19" }, "downloads": -1, "filename": "drfjsonapi-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4d11e07463ad1e2cd303bd59398b6c3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27085, "upload_time": "2016-04-06T00:30:27", "url": "https://files.pythonhosted.org/packages/1b/29/83c84aed46f96a32cb674230f33d99cce6ef5920015d1c7ef773921dbd92/drfjsonapi-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7250542e2136b4f2d8c50712d44b4216", "sha256": "f585f4ac64fbfa15c04d455bfdc037b41a858eb8ce4423578497002e9ac66641" }, "downloads": -1, "filename": "drfjsonapi-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7250542e2136b4f2d8c50712d44b4216", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23274, "upload_time": "2016-04-06T00:30:05", "url": "https://files.pythonhosted.org/packages/af/e8/91cf88efa0c60aad390ff0695811310068196c3adb6dcaf0e60b37300c09/drfjsonapi-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4d11e07463ad1e2cd303bd59398b6c3", "sha256": "84ca8151d8d049fa637fdf3da39f957a806dfdfe870fcce5167bcbf4db079d19" }, "downloads": -1, "filename": "drfjsonapi-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4d11e07463ad1e2cd303bd59398b6c3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27085, "upload_time": "2016-04-06T00:30:27", "url": "https://files.pythonhosted.org/packages/1b/29/83c84aed46f96a32cb674230f33d99cce6ef5920015d1c7ef773921dbd92/drfjsonapi-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7250542e2136b4f2d8c50712d44b4216", "sha256": "f585f4ac64fbfa15c04d455bfdc037b41a858eb8ce4423578497002e9ac66641" }, "downloads": -1, "filename": "drfjsonapi-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7250542e2136b4f2d8c50712d44b4216", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23274, "upload_time": "2016-04-06T00:30:05", "url": "https://files.pythonhosted.org/packages/af/e8/91cf88efa0c60aad390ff0695811310068196c3adb6dcaf0e60b37300c09/drfjsonapi-0.4.0.tar.gz" } ] }