[英]Swagger UI setup in Web Api for endpoint and class documentation
我在VS2013中有一個解決方案,其中包含幾個類庫和一個Web API項目。 設置Swagger UI時遇到了一些問題。 首先,當我為Web API項目設置swashbuckle時,我只能指向一個文檔XML文件。 有沒有辦法指出要包含多個XML文件,以便Swagger不僅可以為控制器中的路由選擇文檔,還可以從其他項目中獲取域對象? 這是我來自SwaggerConfig.cs的代碼
SwaggerSpecConfig.Customize
(
c =>
{
c.IncludeXmlComments(Path.Combine(dirPath, projName + ".xml"));
}
);
如果添加多個XML文件,它將僅從IncludeXmlComments中拾取最后一個文件。
其次,我在返回JSON時將駝峰式的情況用於DTO
formats.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
但是,當我在Swagger UI的“響應類”中查看響應模型和模型架構時,我看到了確切的類屬性名稱,而不是當命中端點時返回的JSON模式。 有沒有辦法在Swagger UI文檔頁面中顯示確切的JSON模式?
要添加多個XML文件,請像這樣配置swagger。
SwaggerSpecConfig.Customize(c =>
{
// single XML Comment Files
//c.IncludeXmlComments(GetXmlCommentsPath());
// Multiple XML Comment Files
string[] paths = GetXmlCommentsPaths();
foreach (string xmlCommentsPath in paths)
{
c.OperationFilter(new ApplyActionXmlComments(xmlCommentsPath))
.ModelFilter(new ApplyTypeXmlComments(xmlCommentsPath));
}
});
我正在使用5.6.0版,並且多個XML文檔對我有用:
var dir = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"));
foreach (var fi in dir.EnumerateFiles("*.xml"))
{
c.IncludeXmlComments(fi.FullName);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.