Skip to main content

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

Project description

PyPI version Build status Documentation marshmallow 2/3 compatible code style: black

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.5

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

Uploaded Source

Built Distribution

marshmallow_jsonapi-0.21.2-py2.py3-none-any.whl (15.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: marshmallow-jsonapi-0.21.2.tar.gz
  • Upload date:
  • Size: 35.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

File hashes

Hashes for marshmallow-jsonapi-0.21.2.tar.gz
Algorithm Hash digest
SHA256 83e33b41e8f411d34a4b515c39f10192919a9d4f7eeccd4d6b49a4030a163374
MD5 3246dc70436b42b36e3d5b95f53816ee
BLAKE2b-256 60b5c64475a3591a0fc8c458c17d9e9ce78e13124caeccb3e646b844b864e33c

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: marshmallow_jsonapi-0.21.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

File hashes

Hashes for marshmallow_jsonapi-0.21.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b0d2cb711ed7b852136fa7cd3457c55fabbf343ada1fc406c67b5167a5a26b0f
MD5 09afdc25d9d5b33ebd3a09ef9db0f571
BLAKE2b-256 c0c1771863b11e3e8552d5f5fe49895a5793a4ae91696da16b9e371218b68ef1

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