mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
added versioning headers to the API
This commit is contained in:
18
src/paperless/middleware.py
Normal file
18
src/paperless/middleware.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.conf import settings
|
||||
|
||||
from paperless import version
|
||||
|
||||
|
||||
class ApiVersionMiddleware:
|
||||
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
response = self.get_response(request)
|
||||
if request.user.is_authenticated:
|
||||
versions = settings.REST_FRAMEWORK['ALLOWED_VERSIONS']
|
||||
response['X-Api-Version'] = versions[len(versions)-1]
|
||||
response['X-Version'] = ".".join([str(_) for _ in version.__version__])
|
||||
|
||||
return response
|
@@ -115,6 +115,8 @@ REST_FRAMEWORK = {
|
||||
],
|
||||
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning',
|
||||
'DEFAULT_VERSION': '1',
|
||||
# Make sure these are ordered and that the most recent version appears
|
||||
# last
|
||||
'ALLOWED_VERSIONS': ['1', '2']
|
||||
}
|
||||
|
||||
@@ -131,6 +133,7 @@ MIDDLEWARE = [
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'paperless.middleware.ApiVersionMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
|
Reference in New Issue
Block a user