asp.net - 在 .NET Lambda API 中为 Swashbuckle swagger.json 启用 COR
问题描述
我有一个 .NET lambda API,我以前使用 Swashbuckle 生成一个 swagger.json 文件,该文件提供给外部站点使用。我现在正在尝试设置,以便 swagger.json 文件由 API 生成,并可通过外部站点的 url 提供给我们,即:mylambdaapi.com/swagger/v2/swagger.json。当按如下方式推送到 aws 时,我可以通过向我的模板添加一个虚拟事件来完成这项工作。
"SwaggerJson": {
"Type": "Api",
"Properties": {
"Path": "/swagger/v2/swagger.json",
"Method": "GET"
}
}
这仅适用于正常访问文件,但是在尝试加载 json 时,外部站点将遇到 CORS“No 'Access-Control-Allow-Origin' header”问题。在这种情况下,有什么方法可以强制生成使用“Access-Control-Allow-Origin”?或者这种方式不可行?我正在研究另一个开发人员之前构建的东西,所以我尽量不重写每一个,但是我对另一种方法持开放态度,只要它能够产生一些外部站点可以使用的 swagger json。
编辑:我应该注意我正在使用 API 网关,悬停 swagger.json 仅用于外部站点的文档目的。
解决方案
尝试使用 UseCors() 功能,但没有奏效。我能够通过在 UseSwagger 之前添加一个匿名函数来处理响应来解决这个问题。
以下片段来自我启动时的配置功能。
app.Use((context, next) =>
{
context.Response.Headers["Access-Control-Allow-Origin"] = "*";
return next.Invoke();
});
app.UseSwagger();
推荐阅读
- php - 使用会话中保存的 Url 变量预填充 Woocommerce 结帐字段
- angular - 具有多个值的Angular 6 HostBinding?
- math - 将 scipy.integrate.quad 与 Tensorflow 一起使用
- c - 声明在 C 中错误终止(大括号)
- angular - 如何在 Angular 4 中使用 HttpClient 从 rest api 获取图像
- mysql - 如何计算(SQL)中的行数?
- java - 带类型的数组
不起作用,错误无法将名称解析为类型 - javascript - 订阅服务时值未定义
- react-native - TextInput 字段中的未定义值 React Native
- http - 如何检查一个HTTP客户端是否仍然连接到asp.net核心中的服务器?