Swagger: изменить маршрут API в Swagger UI - PullRequest
0 голосов
/ 13 сентября 2018

У меня две службы kubernetes, развернутые на AKS, они получают трафик от контроллера входа Nginx.Конечными точками для этих двух служб являются https:<dns>/service1 и https:<dns>/service2.Теперь я хочу настроить Swagger для каждой услуги.Ниже описано, как настроить Swagger UI для одной из служб.

app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/service1/swagger/v1/swagger.json", "API V1");
        });

При такой конфигурации я могу получить доступ к Swagger с помощью https:<dns>/service1/swagger.

Теперь проблема заключается в том, чтоSwagger UI, когда я хочу протестировать API, нажав кнопку «Try it out», а затем кнопку «Excute», URL-адрес, по которому Swagger UI получает доступ, равен https:<dns>/api/v1/contoller вместо https:<dns>/service1/api/v1/contoller.Это означает, что Swagger UI не знает о существовании пути /service1/.Я нашел несколько похожих вопросов, таких как этот Как изменить базовый URL Swagger в ядре ASP.NET .Но они не являются решением моей проблемы.Я думаю, мне нужно установить базовый путь для Swagger.Если бы кто-нибудь мог рассказать мне, как настроить базовый путь для Swagger в ASP.NET core 2.0, это было бы очень полезно.

Ответы [ 3 ]

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

Пожалуйста, укажите ваш public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) {

используйте после этого:

app.UseSwaggerUI(c=>
              {
                   c.SwaggerEndpoint("/service1/swagger/v1/swagger.json", "Giftaway API V1");

Эта опция

c.RoutePrefix = "service1";

это даст вам https:<dns>/service1/api/v1/controller

0 голосов
/ 09 ноября 2018

В вашем входе не используйте эту аннотацию

nginx.ingress.kubernetes.io / rewrite-target: /

0 голосов
/ 13 сентября 2018

На основе https://github.com/apigee-127/swagger-tools/issues/342#issuecomment-391940961 и https://github.com/springfox/springfox/pull/1217 возможно, вы можете попробовать установить префикс X-forwarded-prefix в вашем правиле входа, например https://github.com/kubernetes/ingress-nginx/pull/1805#issuecomment-366896998

...