Как мне указать элемент «схема», используя NSwag и C #? - PullRequest
0 голосов
/ 03 октября 2018

Я использую ASP.NET Core и NSwag для размещения и описания новой веб-службы, размещенной в IIS с аутентификацией Windows.

Локально запускаю веб-службу с использованием https, но при развертывании в тестеВ среде веб-сервиса стоит балансировщик нагрузки с SSL-разгрузкой.Это означает, что, несмотря на то, что сайт, по-видимому, работает в браузере по протоколу SSL, фактическая привязка в IIS - httpПоэтому моя страница пользовательского интерфейса Swagger (и определение swagger.json) описывает схемы, поддерживаемые как http.

Я бы хотел, чтобы элемент Schemes в Swagger.json использовался для чтения «https» вместо «http»,Кто-нибудь сможет помочь мне найти свойство, которое мне нужно установить в моем коде, чтобы установить схему вручную?

{
    x-generator: "NSwag v11.19.1.0 (NJsonSchema v9.10.72.0 (Newtonsoft.Json v11.0.0.0))",
    swagger: "2.0",
    info: {
        title: "My API title",
        description: "Provides access to data.",
        version: "1.0.0"
    },
    host: "myhostname.net",
    schemes: [
        "http"
    ],
    etc...
}

1 Ответ

0 голосов
/ 03 октября 2018

Бум.Понял!

Наконец-то нашел ответ на Github , и следующий код помог:

app.UseSwaggerWithApiExplorer(config =>
{
    //...other code omitted...
    config.PostProcess = settings =>
    {
        settings.Schemes.Clear();
        settings.Schemes.Add(NSwag.SwaggerSchema.Https);
    };
});

РЕДАКТИРОВАТЬ:

для NSwag v12использовать:

app.UseSwagger(configure => configure.PostProcess = (document, _) => document.Schemes = new[] { SwaggerSchema.Https });
...