【发布时间】:2017-12-01 11:38:14
【问题描述】:
我正在尝试在我的 ASP.NET Core Web API 上自定义 swagger UI。
我想要这样的用户界面:
我正在学习这些教程:
- https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio
- https://github.com/swagger-api/swagger-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 存储库中下载了 swagger ui 文件并像这样放在我的项目中:
我不知道这样做是否正确,但我看不到对 Swagger UI 的任何更改。
【问题讨论】:
-
在您的
index.html
文件中您是否引用了您的css?另外,您是否浏览到http://localhost:<random_port>/swagger/ui/index.html
并在呈现页面顶部的输入框中输入http://localhost:<random_port>/swagger/v1/swagger.json
? -
这就是问题所在。该 index.html 页面未被调用。
-
你是什么意思,
That index.html page is not called
?您是否尝试过浏览它以确保它被正确提供? -
您可能不需要付出那么多努力。查看我的博文:cpratt.co/customizing-swagger-ui-in-asp-net-core
-
我的意思是 dist 文件夹中的 index.html 与我运行 API 时加载的不同。我需要知道如何正确设置它以查看更改。 SwaggerEndpoint 需要有一个 .json 文件才能工作。
标签: c# asp.net-web-api asp.net-core swagger swagger-ui