【问题标题】:How to specify example value for a parameter in C# XML doc comments?如何在 C# XML 文档注释中为参数指定示例值?
【发布时间】:2020-11-25 02:41:39
【问题描述】:

如果您使用 C# XML doc cmets,并且您有一个 param 来提供函数参数的描述,那么您如何提供示例值(例如 "San Francisco"5)?

这是一个例子:

/// <summary>
/// Lookup EAN barcode value, return product data
/// </summary>
/// <remarks>Lookup an input EAN barcode and return key details about the product</remarks>
/// <param name="value">Barcode value</param>
/// <returns>JSON describing matching product data to the entered barcode</returns>
[HttpPost, Route("ean")]
public BarcodeLookupResponse EanLookup([FromBody]string value)

在这里,对于名为“value”的参数,我想提供一个示例 EAN 条形码,例如“QN1318481”记录一个示例值(不是示例代码sn-p)

【问题讨论】:

  • @RufusL 在&lt;param&gt;中间使用&lt;example&gt;可以吗?
  • @RufusL 感谢您的反馈。我在上面添加了一个示例和说明。真的,我正在尝试为参数提供示例值,而不是示例代码 sn-p
  • 这是用于编辑器中的智能感知吗?抱歉,我仍然不清楚你想要得到什么输出,以及在哪里。怎么样:/// &lt;param name="value"&gt;Barcode value (i.e. "QN1318481")&lt;/param&gt;?另外,您可以考虑将参数命名为barcode 而不是value,以使其更清晰。
  • @RufusL 我想提供示例值,因为这是一个 API,我们正在使用 Swagger 生成 OpenAPI 文档,并且 OpenAPI 文档支持“示例值”。由于我们的 OpenAPI 是从 doc cmets 生成的,所以想看看有没有办法。你是说没有办法做到这一点?
  • 不,我在上一条评论中提供了一个示例。但这是您第一次提到有关 OpenAPI 及其“示例值”支持的任何内容(我对此一无所知)。您可能应该使用这些重要细节更新您的问题,并将 OpenAPI 标记添加到您的问题中。

标签: c# xml swagger comments


【解决方案1】:

如果您需要它来使用 Swagger 生成 OpenAPI 文档,那么在 param 标记内使用 example 值是完全可以的。根据Include Descriptions from XML Comments(第 3 点),您可以写类似

/// <summary>
/// Lookup EAN barcode value, return product data
/// </summary>
/// <remarks>Lookup an input EAN barcode and return key details about the product</remarks>
/// <param name="value" example="QN1318481">Barcode value</param>
/// <returns>JSON describing matching product data to the entered barcode</returns>
[HttpPost, Route("ean")]
public BarcodeLookupResponse EanLookup([FromBody]string value)

Swagger UI 会自动使用这个值,前几天刚试过,效果很好

【讨论】:

  • 实际上 - 类上的属性怎么样?例如,如果参数是 MyObject 类型,并且 MyObject 有两个属性 MyProperty1 和 MyProperty2 - 如何为 MyProperty1 和 MyProperty2 提供示例值?
  • @Abr 只需放置一个单独的&lt;example&gt;my value&lt;/example&gt; 标签。答案中上述链接中的第 4 点表明:)
  • 谢谢!还有一个问题,抱歉 - 这在 Swashbuckle for .NET Framework 中有效吗?
  • @Abr 与 .NET FW 无关,仅在 .NET Core 上尝试过
  • @PavelAnikhouski 有没有办法在不实际添加示例值的情况下更改占位符?
猜你喜欢
  • 2011-01-16
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多