Skip to main content

A toolkit for Django REST framework to easily switch APIs' naming styles.

Project description

This is a toolkit supporting camel case and snake case APIs’ naming styles and easily switch.

I wrote this with Django 2.0 and Django REST framework 3.7.3, but I think it can easily work with other versions of Django and DRF.

Requirements

  • Python (2.7+)
  • Django
  • Django REST framework

Installation

Install using pip

pip install django-rest-framework-naming-style

Replace renderer and parser classes for JSON in your REST_FRAMEWORK setting

REST_FRAMEWORK = {
    ...
    'DEFAULT_RENDERER_CLASSES': (
        'django_rest_framework_naming_style.renderer.StylesJSONRenderer',
        # 'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.BrowsableAPIRenderer',
    ),
    'DEFAULT_PARSER_CLASSES': (
        'django_rest_framework_naming_style.parser.StylesJSONParser',
        # 'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
        'rest_framework.parsers.MultiPartParser',
    ),
    ...
}

Make a monkey patch in django’s manage.py

# Make patching before `execute_from_command_line(sys.argv)`
from django_rest_framework_naming_style.monkey import monkey_patch
    monkey_patch()

execute_from_command_line(sys.argv)

Optional Settings

There are settings of this package with default value, options.

REST_FRAMEWORK_NAMING_STYLE = {
    'STYLE_KEY': 'STYLE',  # set a header key
    'STYLE_DEFAULT': 'underscore',  # underscore/camelcase
}

STYLE_KEY that you set accept a value in request headers between underscore and camelcase to specify one naming style of APIs unless you set style in view object to specify it.

If you set STYLE_KEY None, the style only depends on style in view object or STYLE_DEFAULT as you like.

Thank you for using django-rest-framework-naming-style.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-rest-framework-naming-style-0.2.tar.gz (3.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page