asp.net-core - Swashbuckle.AspNetCore - 有没有办法动态设置 swagger.json 的路径?
问题描述
我需要在 Azure 应用程序网关后面的多个 url 托管一个服务。该服务将在内部托管,http://10.11.12.13:1234
并且只会有一个相同的实例。这需要通过公共 URL 公开,例如: - foo.example.com/service1 - bar.example.com/service1 等。
我们可以配置应用程序网关来重写进入的 url 以指向托管服务。类似 example.com/service1 => 10.11.12.13:1234
问题是swagger文件的路径是在Startup.cs中设置的:
options.SwaggerEndpoint("/swagger/api/swagger.json", "我的 API");
此时没有 HttpRequest 可用,因此我无法读取标头并进行适当配置,这就是我们PreSerializeFilters
在返回的.basePath 中设置的方法swagger.json
。
当前,当用户导航到 时,swagger UI 将尝试从错误位置https://foo.example.com/service1/swagger
拉下 swagger.json 。https://foo.example.com/swagger/api/swagger.json
它应该从https://foo.example.com/service1/swagger/api/swagger.json
.
有什么类似的方法PreSerializeFilters
可以设置 swagger.json 本身的路径吗?
解决方案
问题是swagger文件的路径是在Startup.cs中设置的:
options.SwaggerEndpoint("/swagger/api/swagger.json", "My API");
设置一个相对 url 而不是绝对的。
options.SwaggerEndpoint("swagger/api/swagger.json", "My API");
推荐阅读
- css - 最小宽度与最大宽度
- react-native - 内部的图像反应原生 FlatList 淡入,而不是仅仅被预渲染
- javascript - 从 mongodb 生成持续 1 天的随机文档
- python - 如何在不更改父类的情况下从父类正确继承方法?
- regex - 如何通过 typeorm 和 nest.js 中的正则表达式正确设置验证
- python - 如果满足条件,将列表系列中的 -n 元素附加到另一个列表系列
- jquery - 获取 img 的 src 值并将另一个元素作为背景图像
- c# - ScrollView 在 Xamarin Forms 中的另一个 ScrollView 内
- javascript - React Native:没有创建 Firebase App '[DEFAULT]' - 调用 Firebase App.initializeApp() (app/no-app)
- python - matplotlib plot_surface 颜色图不随 z 轴缩放