Skip to main content

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

Project description

PyPI version TravisCI build status Documentation marshmallow 2/3 compatible

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'
        strict = True

post_schema = PostSchema()
post_schema.dump(post).data
# {
#     "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 >= 2.7 or >= 3.5

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.21.1.tar.gz (34.6 kB view details)

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.21.1-py2.py3-none-any.whl (15.9 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: marshmallow-jsonapi-0.21.1.tar.gz
  • Upload date:
  • Size: 34.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for marshmallow-jsonapi-0.21.1.tar.gz
Algorithm Hash digest
SHA256 227b606626a4372c1f2b544f213565b7d862bd8ae203ef99daad9bbdc30527ed
MD5 b4519edb0d09177ffa425c2704e0fb09
BLAKE2b-256 8818051eea180dc76d39620f666c9c73dc237ecb216747a33eeb0c3240a417c7

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: marshmallow_jsonapi-0.21.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for marshmallow_jsonapi-0.21.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9eb8df4051c206581ae4a226cb697558c0e68fd1eb3761c6e1746c13d3e0f784
MD5 762e167153231b074faa4dbbe2d1b7b8
BLAKE2b-256 c29ac6481b608c47a04c0960d5d23e5bddfe4bcb7f6001de6fa0205a47348c51

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