2016-03-16 13 views
6

Używam Django REST Framework i biblioteki django-rest-swagger do budowania punktów końcowych API. Chciałbym pogrupować niektóre adresy URL interfejsu API według niestandardowego atrybutu zamiast adresu URL.django-rest-swagger: jak grupować punkty końcowe?

Na przykład mam punktów końcowych API i chciałby je grupy funkcji:

# 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 

Więc chciałbym pokazać je pogrupowane według ról. Teraz zgrupowali tylko "/ api /" i to wszystko.

W urls.py ja to tak:

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

Jak mogę zrobić zwyczaj grupowania dla Django Rest-puszyć?

+0

Hi, prawda dowiedzieć się, jak to zrobić? – Dineshs91

+0

Nie, nie zrobiłem. Wygląda na to, że do tego może być konieczne napisanie własnego interfejsu. – baldr

+0

O, dzięki za szybką odpowiedź. – Dineshs91

Odpowiedz

0

Można mieć urls.py w aplikacji Zadania (zakładam, że jest), i zadeklarować je w/Zadania adresów URL.

Jeden to dla każdego z punktów końcowych

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

I to w api korzenia urls.py

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

ALE, wygląda jak można użyć DRF routers

Powiązane problemy