16

現在、私は 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 の実装を完全に変更して、そのリポジトリのソリューションを使用できるようにすることはできますか?

4

4 に答える 4

14

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

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

2) Swagger UI のメイン 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");
    });
  }
}
于 2015-12-10T09:53:30.533 に答える
1

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

于 2016-01-10T10:36:57.063 に答える