2016-03-16 14 views
6

Ich verwende Django REST Framework und django-rest-swagger-Bibliothek für den Aufbau eines API-Endpunkte. Ich möchte einige API-URLs nach benutzerdefinierten Attributen anstelle von URL gruppieren.django-rest-swagger: Wie gruppiere ich Endpunkte?

Zum Beispiel habe ich API-Endpunkte und möchte sie durch Funktionen zur Gruppe:

# task list management 

GET /api/tasks/known - get known tasks list with their parameters 
GET /api/tasks - get last tasks list with their statuses 

# Tasks by ID management 

GET /api/task/12345 - get task result/status 
DELETE /api/task/12345 - Revoke task 

# Task by name management: 
# MyTask123 

GET /api/tasks/MyTask123 - get task info (parameters, etc) 
POST /api/tasks/MyTask123 - async start new task 

# MySuperShinyTask777 

GET /api/tasks/MySuperShinyTask777 - get task info (parameters, etc) 
POST /api/tasks/MySuperShinyTask777 - async start new task 

# scheduled tasks management 

GET /api/tasks/scheduled - get list of scheduled tasks 

# manage exact scheduled tasks 

POST /api/tasks/scheduled/MyTask123 - schedule new task 
GET /api/tasks/scheduled/12345 - get scheduled task details 
PUT /api/tasks/scheduled/12345 - change scheduled task 
DELETE /api/tasks/scheduled/12345 - delete scheduled task 

So würde ich sie durch Rollen gruppiert zeigen mögen. Jetzt gruppierten sie alle nur '/ api /' und das war's.

In urls.py Ich schließe es wie folgt aus:

url(r'^api/', include('api.urls'), name='my-api-root'), 

Wie kann ich benutzerdefinierte tun Gruppierung für django-rest-Prahlerei?

+0

Hallo nutzen konnten, haben Sie Abbildung wie man das macht? – Dineshs91

+0

Nein, habe ich nicht. Es scheint, dass Sie dafür möglicherweise Ihr eigenes Frontend schreiben müssen. – baldr

+0

Oh, danke für die schnelle Antwort. – Dineshs91

Antwort

0

Sie können eine urls.py in Ihrer Aufgaben-App haben (ich nehme an, es gibt eine) und diese in Ihren/task-URLs deklarieren.

Einer dieser für jedes Ihrer Endpunkte

url(r'^ tasks/(?P<task_id>\w+)$', 
    YourTaskView, 
    name='task'), 

Und dies in Ihrem api Wurzel urls.py

url(r'^api/', include('api.tasks.urls'), name='my-api-root'), 

aber wie sieht man DRF routers

Verwandte Themen