Skip to main content

JSON API 1.0 (https://jsonapi.org) formatting with marshmallow

Project description

PyPI version Build status Documentation marshmallow 2/3 compatible code style: black

Homepage: http://marshmallow-jsonapi.readthedocs.io/

JSON API 1.0 (https://jsonapi.org) formatting with marshmallow.

marshmallow-jsonapi provides a simple way to produce JSON API-compliant data in any Python web framework.

from marshmallow_jsonapi import Schema, fields


class PostSchema(Schema):
    id = fields.Str(dump_only=True)
    title = fields.Str()

    author = fields.Relationship(
        "/authors/{author_id}", related_url_kwargs={"author_id": "<author.id>"}
    )

    comments = fields.Relationship(
        "/posts/{post_id}/comments",
        related_url_kwargs={"post_id": "<id>"},
        # Include resource linkage
        many=True,
        include_resource_linkage=True,
        type_="comments",
    )

    class Meta:
        type_ = "posts"


post_schema = PostSchema()
post_schema.dump(post)
# {
#     "data": {
#         "id": "1",
#         "type": "posts"
#         "attributes": {
#             "title": "JSON API paints my bikeshed!"
#         },
#         "relationships": {
#             "author": {
#                 "links": {
#                     "related": "/authors/9"
#                 }
#             },
#             "comments": {
#                 "links": {
#                     "related": "/posts/1/comments/"
#                 }
#                 "data": [
#                     {"id": 5, "type": "comments"},
#                     {"id": 12, "type": "comments"}
#                 ],
#             }
#         },
#     }
# }

Installation

pip install marshmallow-jsonapi

Documentation

Full documentation is available at https://marshmallow-jsonapi.readthedocs.io/.

Requirements

  • Python >= 3.6

License

MIT licensed. See the bundled LICENSE file for more details.

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

marshmallow-jsonapi-0.22.0.tar.gz (34.6 kB view details)

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.22.0-py2.py3-none-any.whl (14.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file marshmallow-jsonapi-0.22.0.tar.gz.

File metadata

  • Download URL: marshmallow-jsonapi-0.22.0.tar.gz
  • Upload date:
  • Size: 34.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for marshmallow-jsonapi-0.22.0.tar.gz
Algorithm Hash digest
SHA256 4740d53c15a2a82dd493ae34b38e3a115e8b4e26c000c6dae6173873f653d665
MD5 84d581ba31e8a30d3fe16750f4fc3ac3
BLAKE2b-256 269f8c6f6aec1f23b0dad26a7c8ab4e7643573151775cc77404a4fc00ed69b07

See more details on using hashes here.

Provenance

File details

Details for the file marshmallow_jsonapi-0.22.0-py2.py3-none-any.whl.

File metadata

  • Download URL: marshmallow_jsonapi-0.22.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for marshmallow_jsonapi-0.22.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3792cabff74aac152cf1c6d7754e0de024e2e3e8852d3d282a4d8fe827b1f946
MD5 4cf1b1761134759217756f8d7a1f1b8a
BLAKE2b-256 fcc357f2cd552bada59af5ce8a44b9ef372ec8853fc4e7ed8a3bb8c713c699b1

See more details on using hashes here.

Provenance

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