【问题标题】:Enable CORs for Swashbuckle swagger.json in .NET Lambda API在 .NET Lambda API 中为 Swashbuckle swagger.json 启用 COR
【发布时间】:2020-12-02 12:53:38
【问题描述】:

我有一个 .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 仅用于外部站点的文档目的。

【问题讨论】:

    标签: asp.net aws-lambda cors swagger swashbuckle.aspnetcore


    【解决方案1】:

    尝试使用 UseCors() 功能,但没有成功。我能够通过在 UseSwagger 之前添加一个匿名函数来处理响应来解决此问题。

    以下片段来自我启动时的配置功能。

    app.Use((context, next) =>
    {
        context.Response.Headers["Access-Control-Allow-Origin"] = "*";
        return next.Invoke();
    });
    
    app.UseSwagger();
    

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 2017-04-16
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多