Skip to main content

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

Project description

Latest version Travis-CI marshmallow 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.4

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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.17.0-py2.py3-none-any.whl (13.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for marshmallow-jsonapi-0.17.0.tar.gz
Algorithm Hash digest
SHA256 af189cd003380c8409e0cd34add1bce240903b88a0639d5de18e0364ade79f4c
MD5 df130628e5cd69b28fcf5599fd949d2b
BLAKE2b-256 936124b992f22a52f3feb40b36078e4e22722971c27888778c54bd1b83a80fef

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for marshmallow_jsonapi-0.17.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bb8a4d7bd21d41192f8747ccc4f76eab20ce7dae589d20350af3ebc3426ed8ff
MD5 f87274f0e5f084b078209c9f8dca0afd
BLAKE2b-256 089f5731578fb116dbff58df58d949a3e23e9095b8b9c782b95bd4422bfb715d

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