![](/img/trans.png)
[英]How to specify a query parameter serializer in django-rest-swagger?
[英]django-rest-swagger: how to group endpoints?
我正在使用 Django REST 框架和 django-rest-swagger 库来构建 API 端点。 我想按自定义属性而不是 URL 对一些 API 网址进行分组。
例如,我有 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
中,我像这样包含它:
url(r'^api/', include('api.urls'), name='my-api-root'),
如何为 django-rest-swagger 进行自定义分组?
我看到人们不断访问这个问题并对其进行投票。 这意味着问题是实际的。 我可以描述我最近完成类似任务的结果。
我根据OpenAPI规范创建了 API 端点的 YAML 表示。 我也必须在后端保留相同的 API 端点,这是一个缺点,因为这不是自动生成的文档。
我使用 docker 安装了Swagger-UI ,它使用我的 YAML 规范来表示 Swagger 页面。
可以很容易地按自定义组分隔端点,甚至可以将一个端点分为两组。
你可以在你的任务应用程序中有一个 urls.py(我假设有一个),并在你的 /tasks urls 中声明它们。
每个端点的其中一个
url(r'^ tasks/(?P<task_id>\w+)$',
YourTaskView,
name='task'),
这在你的 api 根 urls.py
url(r'^api/', include('api.tasks.urls'), name='my-api-root'),
但是,看起来您可以使用DRF 路由器
那个设定呢?
SPECTACULAR_SETTINGS = {
'SCHEMA_PATH_PREFIX': '/api/tasks',
}
或者,未经测试,但您似乎可以使用@extend_schema中的标签参数来自定义端点的分组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.