Мультиверсия

Вы можете сделать несколько адресов URL с различным набором API-функций. Заметьте, что в этом случае нам не нужно регистрировать переменную QUICKAPI_DEFINED_METHODS в файле настроек проекта.

# urls.py

urlpatterns = patterns('',
    ...
    url(r'^api/v1/$', 'project.app.views.api_v1', name="api_v1"),
    url(r'^api/v2/$', 'project.app.views.api_v2', name="api_v2"),
    ...
)
# views.py

from django.views.decorators.csrf import csrf_exempt
from quickapi.views import index as quickapi_index, get_methods

DICT_METHODS_V1 = {
    'mymethod1': api_mymethod_v1,                     # function
    'mymethod2': 'project.app.views.api_mymethod_v1', # string for import
    ...
}

METHODS_V1 = get_methods(DICT_METHODS_V1)

DICT_METHODS_V2 = (
    ('mymethod1', api_mymethod_v2),
    ('mymethod2', 'project.app.views.api_mymethod_v2'),
    ...
)

METHODS_V2 = get_methods(DICT_METHODS_V2)

@csrf_exempt
def api_v1(request):
    return quickapi_index(request, methods=METHODS_V1)

@csrf_exempt
def api_v2(request):
    return quickapi_index(request, methods=METHODS_V2)

Естесственно, тестовый адрес /api/test/ становится недоступным после таких изменений.