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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.13.0-py2.py3-none-any.whl (14.1 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for marshmallow-jsonapi-0.13.0.tar.gz
Algorithm Hash digest
SHA256 5ceb669fc0c4786a9b66e1692a6df081a23d1dce1c064986cfbf6c4643c89ea3
MD5 ab302ae2a2cfefb9bddfa709c1b445f4
BLAKE2b-256 4d4bb7d9f30733dbbf995e7354bec54b142d8b41094396a60fed1ab276924e89

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for marshmallow_jsonapi-0.13.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3b8e54867638f53d660c1ad72f1817748b744b09bbce4fd6ada572cbc7790b69
MD5 a901a06e19a5ac29820fed5c1f3b12d1
BLAKE2b-256 27ec761328f0ddf32af89a4b036008933cbddcc8939096085f3d092ec7ed0343

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