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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.14.0-py2.py3-none-any.whl (14.2 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for marshmallow-jsonapi-0.14.0.tar.gz
Algorithm Hash digest
SHA256 1ad6779f4ecbe320c51ba50516bd1f5ba1e0aa0ec7d48757146115575b177bff
MD5 57fd5ca64807882e03c18b7c530482b5
BLAKE2b-256 1831dd49c6abf782550a597ca2e0b32d0f5b93aa23ad58d2372e4259f22bbac0

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for marshmallow_jsonapi-0.14.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ad61d4eab388af8c70a24a3e7799bbb95f55b0ce24342075d5d1daa8817fa651
MD5 b39dfe57a17989065b5cf7a77b671e96
BLAKE2b-256 9f9a010012c0953eb123eee2646c293bc27e526033351295c9e128649aa660fd

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