我正在使用Django REST Framework和django-rest-swagger库来构建API endpoints . 我想通过自定义属性而不是URL对一些API网址进行分组 .
例如,我有API endpoints ,并希望按功能对它们进行分组:
# 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
所以我想按角色分组 . 现在他们只将'/ api /'分组,就是这样 .
在 urls.py
中我将它包括在内:
url(r'^api/', include('api.urls'), name='my-api-root'),
如何为django-rest-swagger进行自定义分组?
2 回答
我看到人们继续访问这个问题并对其进行投票 . 这意味着问题是实际的 . 我可以用最近的类似任务描述我最终的结果 .
我根据OpenAPI规范创建了API endpoints 的YAML表示 . 我不得不在后端保留相同的API endpoints ,这是一个缺点,因为这不是自动生成的文档 .
我用docker安装了Swagger-UI,它使用我的YAML规范来表示Swagger页面 .
通过自定义组分隔 endpoints 很容易,甚至在两个组中有一个 endpoints .
您可以在任务应用程序中使用urls.py(我假设有一个),并在/ tasks URL中声明它们 .
其中一个针对您的每个 endpoints
这在你的api根urls.py中
但是,看起来你可以使用DRF routers