Skip to main content

Camel case JSON support for Django REST framework.

Project description

Django REST Framework JSON CamelCase

https://travis-ci.org/vbabiy/djangorestframework-camel-case.png?branch=master https://badge.fury.io/py/djangorestframework-camel-case.svg

Camel case JSON support for Django REST framework.

Installation

At the command line:

$ pip install djangorestframework-camel-case

Add the render and parser to your django settings file.

# ...
REST_FRAMEWORK = {

    'DEFAULT_RENDERER_CLASSES': (
        'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
        # Any other renders
    ),

    'DEFAULT_PARSER_CLASSES': (
        # If you use MultiPartFormParser or FormParser, we also have a camel case version
        'djangorestframework_camel_case.parser.CamelCaseFormParser',
        'djangorestframework_camel_case.parser.CamelCaseMultiPartParser',
        'djangorestframework_camel_case.parser.CamelCaseJSONParser',
        # Any other parsers
    ),
}
# ...

Swapping Renderer

By default the package uses rest_framework.renderers.JSONRenderer. If you want to use another renderer (the only possible alternative is rest_framework.renderers.UnicodeJSONRenderer, only available in DRF < 3.0), you must specify it in your django settings file.

# ...
JSON_CAMEL_CASE = {
    'RENDERER_CLASS': 'rest_framework.renderers.UnicodeJSONRenderer'
}
# ...

Underscoreize Options

As raised in https://github.com/krasa/StringManipulation/issues/8#issuecomment-121203018 there are two conventions of snake case.

# Case 1 (Package default)
v2Counter -> v_2_counter
fooBar2 -> foo_bar_2

# Case 2
v2Counter -> v2_counter
fooBar2 -> foo_bar2

By default, the package uses the first case. To use the second case, specify it in your django settings file.

REST_FRAMEWORK = {
    # ...
    'JSON_UNDERSCOREIZE': {
        'no_underscore_before_number': True,
    },
    # ...
}

Running Tests

To run the current test suite, execute the following from the root of he project:

$ python -m unittest discover

License

  • Free software: BSD license

History

0.1.0 (2013-12-20)

  • First release on PyPI.

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

djangorestframework-camel-case-1.0.1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file djangorestframework-camel-case-1.0.1.tar.gz.

File metadata

  • Download URL: djangorestframework-camel-case-1.0.1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/2.7.10

File hashes

Hashes for djangorestframework-camel-case-1.0.1.tar.gz
Algorithm Hash digest
SHA256 5e9764e3aa507f25747eddad22234da0c00c981d44fa8335e490cd9a0a6bdf5f
MD5 fc26b1ac02f3ea198f83219d27f73414
BLAKE2b-256 e300a999796be29c1c33b690f3f71599aaec994a13cb105659a9a66b0ca494ff

See more details on using hashes here.

File details

Details for the file djangorestframework_camel_case-1.0.1-py2-none-any.whl.

File metadata

  • Download URL: djangorestframework_camel_case-1.0.1-py2-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/2.7.10

File hashes

Hashes for djangorestframework_camel_case-1.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 5aa2bb693b808a5541f392ae6bb83e5ec78a75be9fb71798b88d5a98908e8f9d
MD5 b343711f489d4a39348de38fdc939cb6
BLAKE2b-256 3609dcd36c58cfa8b57e402229b985e85c82407e49a53d61ad7a90d436d63461

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page