Swashbuckle.AspNetCore.SwaggerでSwaggerUiのRootPathを変更する

Swashbuckle.AspNetCore.SwaggerでSwaggerUiのRootPathを変更したい

前回のユースケースで、PathBaseを利用してWebApiのRootPathを変更した場合、SwaggerUi自体のRootPathも変更が必要になります。

UseSwaggerUIのSwaggerUiOptionsのRoutePrefixにサブディレクトリを設定する

個人的にSwashbuckleに関連するConfigureをまとめてるのは以下です。 github.com

UseSwaggerUIのSwaggerUiOptionsのRoutePrefixにサブディレクトリを設定するコード例

github.com

                    .UseSwaggerUI(option => {
                        option.SwaggerEndpoint(swaggerUiSettings.Url, swaggerUiSettings.Name);
                        if (swaggerUiSettings.RoutePrefixSettings.IsOverridable) {
                            option.RoutePrefix = swaggerUiSettings.RoutePrefixSettings.RoutePrefix;
                        }
                    });

settingによって切り替えるコードにしているのでswaggerUiSettings.RoutePrefixSettings.IsOverridableの検査が入っていますが、option.RoutePrefixに、サブディレクトリを設定することで、SwaggerUIのRootPathを変更することが可能です。

次に

  • SwaggerUiからrequestを投げるエンドポイントのRootPath(Swagger a.k.a. OpenApi的にはServersに関するSettings)

の設定を行っていきます。(続きます。)