Я хотел бы добавить cors в swagger.json, но не в конечные точки контроллера. Я могу сделать межсайтовый вызов, когда я добавляю политику cors глобально, используя.
services.AddCors(options => options.AddPolicy("SwaggerCorsPolicy",
builder =>
{
builder.AllowAnyMethod().AllowAnyHeader()
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
вместе с
app.UseCors("SwaggerCorsPolicy");
С этим я могу вызвать /swagger/v1/swagger.json
из другого порта, так что я знаю, что он работает.
Я хотел бы добавить cors только к конечной точке /swagger/v1/swagger.json
.
Я пытался использовать MapGet
в app.UseEndpoints
, но безуспешно. Вот что я пробовал
app.UseSwagger();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapGet("/swagger/v1/swagger.json", async context => context.Response.WriteAsync("echo"))
.RequireCors("SwaggerCorsPolicy");
});
Я работаю с проблемами, когда я создаю swagger.json из приложения и запускаю ReDoc в контейнере, передавая uri локального хоста swagger.json. Это работает, когда cors включен глобально, но не когда я пытаюсь включить его только для swagger.json.
Я использую .net core 3 и openapi 3.