Я бы хотел добавить сердечники к сваггеру. 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");
});
Я работаю над проблемами, когда я создаю свагер. json из приложения и запускаю ReDo c в контейнере, проходящем в localhost uri сваггера . json. Это работает, когда cors включен глобально, но не когда я пытаюсь включить его только для чванства. json.
Я использую. net core 3 и openapi 3.