Web API permissions for the Django REST Framework
Project description
djangorestframework-api-key 
🔐 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.
- Fork the repo
- Clone it on your local
- Install dependencies with Pipenv:
$ pipenv install - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file djangorestframework-api-key-0.1.0.tar.gz.
File metadata
- Download URL: djangorestframework-api-key-0.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71dfeb6ba8e5eaf6afbb5b5191af6c97c81022a051ae6dc37ad3205013f324c3
|
|
| MD5 |
4fcd02acf16044c040fc43bb59877441
|
|
| BLAKE2b-256 |
580fef870a17a4c22ea8b93387403beb167eddb03284aa406a6fe00f220a535c
|
File details
Details for the file djangorestframework_api_key-0.1.0-py3-none-any.whl.
File metadata
- Download URL: djangorestframework_api_key-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18a0dbe4a0613c6d41e85dbd2a53405080e222d1d86ea5b33502877e7f86e33c
|
|
| MD5 |
d1d9c21a32a5c9ee7a4e210fcaa1f9cb
|
|
| BLAKE2b-256 |
1802dd15783d8bf46dc2976306c2b2e51479afa4508d84f52760b7d22dad7871
|