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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.12.0-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for marshmallow-jsonapi-0.12.0.tar.gz
Algorithm Hash digest
SHA256 036857079f032b1ee5fb4637e468d1a1dc99815105bdfe847f7104a6d6801249
MD5 98500e3ae781532b9fa0454485adaa37
BLAKE2b-256 dc8597c033c6ce3ae5bca4049f02059eaea09bab2e9a2bc01cfb5bd1ac8526fe

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for marshmallow_jsonapi-0.12.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dea34198187a81594d7d176e7c3e693a933871de9e40fe7ccdbad8883339c6e8
MD5 10f1b4c4cd663fc26f5a1c3563199f14
BLAKE2b-256 ed543a5fdc52e4c442c950dd46288e9c8e6de9ab3b4f981ea3f764269a72cff1

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