Skip to main content

Web API permissions for the Django REST Framework

Project description

djangorestframework-api-key travis

🔐 Web API permissions for the Django REST Framework.

This project is based on (yet not a fork of) the unmaintained django-rest-framework-api-key project.

Supported versions

  • Python: 3.4, 3.5, 3.6, 3.7
  • Django: 1.11 (not on Python 3.7), 2.0
  • Django REST Framework: 3.8+

Install

  • Install from PyPI:
$ pip install djangorestframework-api-key
  • Add to your INSTALLED_APPS:
INSTALLED_APPS = [
  # ...,
  'rest_framework_api_key',
]

Run the included migrations:

$ python manage.py migrate

Usage

Also see example project.

Permission classes

This package provides permission classes to allow external clients to use your API.

The HasAPIKey permission class requires all clients to provide a valid API key, regardless of whether they provide authentication details.

If you want to allow clients to provide either an API key or authentication credentials, use the utility HasAPIKeyOrIsAuthenticated permission class instead.

As with every permission class, you can either use them globally:

# settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework_api_key.HasAPIKey',
    ]
}

or on a per-view basis:

# views.py
from rest_framework_api_key.permissions import HasAPIKey
from rest_framework.views import APIView

class UserListView(APIView):
    permission_classes = (HasAPIKey,)
    # ...

Refer to DRF Docs - Setting the permission policy for more information on using permission classes.

Development

Install

Installing locally requires Pipenv and Python 3.7.

  1. Fork the repo
  2. Clone it on your local
  3. Install dependencies with Pipenv: $ pipenv install
  4. Activate using $ pipenv shell

Tests

Run the tests using:

$ python runtests.py

Generating migrations

This package includes migrations. To regenerate them in case of changes without setting up a Django project, run:

$ python makemigrations.py rest_framework_api_key

CI/CD

Travis CI is in use to automatically:

  • Test the package on supported versions of Python and Django.
  • Deploy tagged commits to PyPI.

Refer to .travis.yml for more information.

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-api-key-0.1.0.tar.gz (6.1 kB view hashes)

Uploaded Source

Built Distribution

djangorestframework_api_key-0.1.0-py3-none-any.whl (10.2 kB view hashes)

Uploaded Python 3

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