web-dev-qa-db-ja.com

SwashbuckleUIを完全に置き換えます

現在、ASP.Net Web APIを開発しており、ドキュメントにSwashbuckleを使用しています。 Swashbuckleが内部でSwagger-UIを使用していることは知っています。また、cssまたはjavascriptファイルを挿入することでレイアウトを変更でき、index.htmlのレイアウトを変更することもできます。

Swagger-UIに適したテーマを見つけました https://github.com/jensoleg/swagger-ui 実装しようとしましたが、機能させることができません。特にbootstrap.jsを注入したいとき。とにかく、Swashbuckle Swagger UIの実装を完全に変更して、そのリポジトリからソリューションを使用できるようにすることはできますか?

12

確かにできます-2つのステップで。

1)ファイルIndex.htmlを埋め込みリソースとしてアセンブリにインクルードします。たとえば、Web APIプロジェクトの名前が「Contosco.Api」で、Index.htmlがこのプロジェクトの「/Content/Index.html」の下にあるとします。

2)SwaggerUIのメインHTMLページを独自のもので上書きします

[Assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
public class SwaggerConfig 
{
  public static void Register()
  {
    var thisAssembly = typeof(SwaggerConfig).Assembly;
    GlobalConfiguration.Configuration.EnableSwagger(c => {
     // configure swagger
    })
    .EnableSwaggerUi(c => {
      // beware - the Contosco.Api.Content.Index.html has to match your project paths :)
      c.CustomAsset("index", thisAssembly, "Contosco.Api.Content.Index.html");
    });
  }
}
9
Ondrej Svejdar

.Zipフォルダーをダウンロードし、抽出してプロジェクトに含めるだけです。 SwaggerConfigre.csでは、これ以上構成する必要はありません。テンプレートをフォルダSwaggerに置くだけで、{domain}/swaggerにアクセスするとindex.htmlになります。 (ビルドアクションを埋め込みリソースに変更する必要はありません。コンテンツは問題ありません)

2
Nguyễn Top

ここで簡単な手順を実行することで、最新のswagger-uiを使用できました https://swagger.io/docs/swagger-tools/#swagger-ui-documentation-29

  1. GitHubからswagger-uiをダウンロードします
  2. Dist(フォルダーの名前をswaggerに変更)フォルダーを抽出してコピーし、プロジェクトに含めます
  3. Distフォルダーのindex.htmlを変更して、Swaggerドキュメントパス(コース外ではSwashbuckleによって生成されます)を指すようにします。
1
deepesh

.NET Coreプロジェクトの場合、ソリューションは@OndrejSvejdarの(正しい)答えとは少し異なります。

Index.htmlを埋め込みリソースとして追加した後、Startup.csのapp.UseSwaggerUI()に次の行を追加する必要があります。

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //...

        app.UseSwaggerUI(c =>
        {
            c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("Your.Default.Namespace.Subfolder.Swagger_Custom_index.html");
        });

        //...
    }

プロセスのすべての詳細はここで見つけることができます: https://stackoverflow.com/a/51043251/430742

0
Jpsy