Skip to main content

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

Project description

Latest version Travis-CI

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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.10.2-py2.py3-none-any.whl (13.8 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for marshmallow-jsonapi-0.10.2.tar.gz
Algorithm Hash digest
SHA256 cb32c2c081232ee6df47dcfafbcb8c514d206f3a0c53b26ebc7e225ddcc464ea
MD5 7df739edfeb9544f07ab62ce92656da9
BLAKE2b-256 46d1dbfe5e4ab8942b746e35ac1fd6c1b3657b889eebd1f02e24b9ab902d2887

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for marshmallow_jsonapi-0.10.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 38d6963f90c4e926666f36ed3fb29a61138bdb05f6a3f85e7250990735316c6c
MD5 ace7dc7c778c22577a3597efb45278f5
BLAKE2b-256 0c48e683382866665656c9776e96a396b8f9e1870d85ea26644daf1d33fc0de5

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