1

我们在 urls.py 中有一堆不同版本的 api,例如

  • api/v1
  • api/v2
  • api/v3

. 我们想用 drf-spectacular 实现 swagger,但我们只想公开 api/v3 端点。

有没有办法做到这一点?我无法理解文档。

谢谢

4

2 回答 2

2

这对我有用:

def preprocessing_filter_spec(endpoints):
    filtered = []
    for (path, path_regex, method, callback) in endpoints:
        # Remove all but DRF API endpoints
        if path.startswith("/api/"):
            filtered.append((path, path_regex, method, callback))
    return filtered

在设置中:

"PREPROCESSING_HOOKS": ["common.openapi.preprocessing_filter_spec"],
于 2021-11-10T12:03:00.107 回答
0

解决了。复制自定义预处理钩子函数,更改 pass 语句以过滤端点中不需要的内容,然后在预处理钩子的壮观设置中映射文件和函数的位置。

于 2021-08-27T18:45:45.390 回答