Djangorestswagger:如何分组端点?

2024-09-30 01:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Django REST框架和Django REST swagger库来构建API端点。我想按自定义属性而不是URL对一些API URL进行分组。在

例如,我有API端点,并希望按函数对它们进行分组:

# 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中,我这样写:

^{pr2}$

如何为django rest swagger自定义分组?在


Tags: djangoapinewtaskgetpostmanagementlist
2条回答

我看到人们不断地访问这个问题并投赞成票。这意味着问题是真实的。我可以描述一下我最近在类似的任务中得到了什么。在

我根据OpenAPI规范创建了一个API端点的YAML表示。我必须在后端保留相同的API端点,这是一个缺点,因为这不是自动生成的文档。在

我用docker安装了Swagger-UI,它使用我的YAML规范来表示Swagger页面。在

很容易通过自定义组分离端点,甚至在两个组中有一个端点。在

你可以有一个网址.py在你的tasks应用程序中(我假设有一个),并在你的/tasks url中声明它们。在

每个端点都有一个

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

在你的api根中网址.py在

^{pr2}$

但是,看起来你可以用DRF routers

相关问题 更多 >

    热门问题