【问题标题】:django-rest-swagger: how to group endpoints?django-rest-swagger:如何对端点进行分组?
【发布时间】:2016-03-16 21:12:23
【问题描述】:

我正在使用 Django REST Framework 和 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 我这样包含它:

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

如何为 django-rest-swagger 进行自定义分组?

【问题讨论】:

  • 嗨,你知道怎么做吗?
  • 不,我没有。看来您可能需要为此编写自己的前端。
  • 哦,感谢您的快速回复。

标签: python django rest django-rest-framework swagger


【解决方案1】:

我看到人们一直在访问这个问题并对其进行投票。这意味着问题是真实的。我可以描述一下我最近完成的类似任务。

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

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

很容易通过自定义组来分隔端点,甚至可以将一个端点分为两组。

【讨论】:

    【解决方案2】:

    您可以在您的任务应用程序中拥有一个 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 routers

    【讨论】:

      猜你喜欢
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      相关资源
      最近更新 更多