ASP.NET Core WebAPIでSwaggerUIをカスタマイズしようとしています。
私はこのようなUIが欲しいです:
私はこれらのチュートリアルに従っています:
これはStartup.csの構成です。
// Add the detail information for the API.
services.ConfigureSwaggerGen(options =>
{
// Determine base path for the application.
var basePath = _env.WebRootPath;
// Complete path
var xmlPath = Path.Combine(basePath, "myapi.xml");
// Set the comments path for the swagger json and ui.
options.IncludeXmlComments(xmlPath);
});
app.UseStaticFiles();
// Enable middleware to serve generated Swagger as a JSON endpoint
app.UseSwagger();
// Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
});
私はすでにgitリポジトリからswaggeruiファイルをダウンロードし、次のようにプロジェクトに配置しました。
これが正しいことかどうかはわかりませんが、SwaggerUIへの変更を確認することはできません。
あなたがフォローしているチュートリアルは次のものを使用しています:Swashbuckle.AspNetCore残念ながら、そのプロジェクトではまだSwagger-UIバージョン2.xを使用していますが、スクリーンショットにはバージョン3が表示されています。バツ
最新のSwagger-UIに更新するためのプルリクエストがいくつかあります。
しかし残念ながら、それらの統合に向けた進展はあまりありません。
Gitリポジトリからファイルをダウンロードする方法を知っているようです...
私の推奨事項:
swagger-uiファイルをダウンロードする代わりに、必要なバージョンを使用しているフォークからプロジェクトSwashbuckle.AspNetCore全体をダウンロードします(例: alexvaluyskiy/Swashbuckle.AspNetCore )。プロジェクトで、nugetパッケージの代わりにそのプロジェクトへの参照を追加します。
別のオプションとして、Swashbuckle.AspNetCoreの独自のフォークを作成し、必要な修正をマージしてから、別の名前で独自のNugetパッケージを公開することもできます。
//I hope this will help you , you can get //https://localhost:44x22/docs/index.html
app.UseSwagger(o =>
{
o.RouteTemplate = "docs/{documentName}/docs.json";
});
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
//This line enables Swagger UI, which provides us with a Nice, simple UI with which we can view our API calls.
app.UseSwaggerUI(c =>
{
c.IndexStream = () => GetType().Assembly
.GetManifestResourceStream("CustomUIIndex.Swagger.index.html"); // requires file to be added as an embedded resource
c.InjectStylesheet("/css/swagger-ui/custom.css");// css path
c.InjectJavascript("../css/swagger-ui/custom.js"); javascript path
c.RoutePrefix = "docs";
c.SwaggerEndpoint("../docs/v1/docs.json", "API v1");
c.SwaggerEndpoint("../docs/v2/docs.json", "API V2");
});
app.UseStaticFiles();
同様の問題が発生したため、スタイルシートを挿入する必要がありました。
c.InjectStylesheet("/Swagger/Ui/custom.css")
これは、Startup.csファイルのapp.UseSwaggerUI
に追加されました。
次の記事は役に立ちましたが、答えを見つけるために両方の情報をマージする必要がありました。