2016-03-16 21 views
6

API uç noktaları oluşturmak için Django REST Framework ve django-rest-swagger kitaplığı kullanıyorum. Bazı API URL'lerini URL yerine özel bir özelliğe göre gruplandırmak istiyorum.django-rest-swagger: uç noktaları nasıl gruplanır?

Mesela ben API uç noktaları var ve işlevleri göre gruplandırmak onları istiyorum:

# 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 

yüzden onları rolleri göre gruplandırılmış göstermek istiyorum. Şimdi hepsi sadece '/ api /' grubunu oluşturdular ve hepsi bu. urls.py yılında

Ben bunu böyle şunlardır:

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

Nasıl özel django-dinlenme-havalı için gruplandırma yapabilirsiniz?

+0

Hi varmış gibi

api kök urls.py

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

da uç noktaları

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

her Ve bunun için bu biri ANCAK, bakar, öyle mi Bunu nasıl yapılacağını – Dineshs91

+0

Hayır, yapmadım. Bunun için kendi önyüzünüzü yazmanız gerekebilir. – baldr

+0

Oh, hızlı cevap için teşekkürler. – Dineshs91

cevap

0

Görevler uygulamanızda bir urls.py dosyasına sahip olabilirsiniz (varsayalım) ve bunları/görevler URL'lerinizde bildirebilirsiniz. Eğer DRF routers