Django drf-spectacular - 你能排除特定路径吗?

Django drf-spectacular - Can you exclude specific paths?

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

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

有办法吗?我无法理解文档。

谢谢

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

这对我有用:

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"],