我正在使用 swagger/swashbuckle 为 Web Api 2 中实现的 api 生成文档。
唯一可识别的 xml 文档标签是
<summary>
、<remarks>
和 <param>
。<para>
标签来格式化新行或段落中的文本,所有内容都在文档的实施说明条目中生成为连续的长段落。
有什么办法可以做到这一点吗?
我发现你只需在评论中添加
<br />
标签即可实现此目的。/// <br />
将导致生成的文档中换行。
另一种实现方法是创建自定义操作过滤器并使用 xml 文档标签,如下所述:
https://github.com/domaindrivendev/Swashbuckle/issues/258
希望这有帮助
山姆
在 SwashBuckle.AspNetCore 中
<br />
和 <br />
(在 github 中建议)不起作用。
在 <remarks>
中,您可以在行尾指定反斜杠。
例如
/// <remarks>
/// before. \
/// after.
/// </remarks>
生成2行
before.
after.
但是我无法在
<summary>
部分生成多行。
注意,如果该行有尾随空格(例如
"before. \ "
),反斜杠将在输出中按字面显示。
您可以在https://github.com/MNF/Samples/blob/master/SwashbuckleExample/SwashbuckleExample/Controllers/SwashBuckleTest.cs中看到我的一些尝试
发布的解决方案均不适用于较新版本的 Swagger。如果您希望注释行之间有换行符分隔,则必须为换行符添加
///
。这使得方法注释变得冗长,但在 Swagger 文档中它们将更具可读性。
/// <summary>
/// Comment Line 1
///
/// Comment Line 2
///
/// Comment Line 3
/// </summary>
根据 Markdown 规范,可以通过添加双空格(两个空格)来结束行来在备注中添加新行
如果所有答案都不适合您,则在某些情况下部分有效,就像我一样。
您可以使用
<br></br>
。不要使用</br>
。有时它会破坏 XML。 Visual Studio 显示 <br/>
的 XML 格式错误
经过长时间的搜索,我发现 *** 代表粗体文本,我知道它不是同一主题,但我很确定这对这里的人有用!
示例:
***400 - BadRequest When any parameter is out of specification.***
我使用 Visual Studio 2022 和 openapi 版本 3.0.1 作为默认值,
要完整的文档,你可以这样做,
首先:确保您在项目中启用了 XML 文档,如下所示:
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DocumentationFile>bin\Debug\net7.0\WebApi.xml</DocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
这将在路径 bin\Debug 处创建 WebApi.xml 文件
et7.0\ 每当您构建项目时。
注意: 如果所有方法都没有 XML 注释,NoWarn 会抑制警告。
现在您可以为自定义文档添加多行和示例,如下所示:
/// <summary>
/// Latest Version: 1.0.2
/// </summary>
/// <remarks>
/// ### Version Walkthrough:
///
/// #### Version 1.0.0 (Base Version):
///
/// ```json
/// {
/// "version": "string", // Optional, 1.0.0 is Default
/// "defParam1": 0, // Mandatory
/// "defParam2": "string" // Mandatory
/// }
/// ```
///
/// #### Version 1.0.1:
///
/// ```json
/// {
/// "newParam1": "string", // Added in ver1.0.1 for specific feature
/// "newParam2": "string" // Added in ver1.0.1 for another feature
/// }
/// ```
///
/// #### Version 1.0.2:
///
/// ```json
/// {
/// "newParam3": "string" // Added in ver1.0.2 for new functionality
/// }
/// ```
///
/// ### Example Request:
///
/// ```json
/// {
/// "version": "1.0.2",
/// "defParam1": 123,
/// "defParam2": "sample data",
/// "newParam3": "new data"
/// }
/// ```
/// </remarks>
/// <response code="201">Returns the newly created item</response>
/// <response code="400">If the item is null</response>
/// <response code="401">Authorization is failed</response>
[HttpPost]
public ProcedureVersioningViewModel GetAllProcedureVersion(GetProcedureVerionResponseItemViewModel model)
{
return _procedureVersionService.GetAllProcedureVersion(model);
}