[英]Dynamic Summary for Swagger documentation
在服務之間使用共享代碼時,嘗試為 .net 核心 swagger 中的文檔創建靈活的方式。 請看這個例子:
public abstract class Err
{
/// <summary>
/// The error x
/// </summary>
public abstract string Code { get; }
}
public class Err1 : Err
{
public override string Code { get => "100"; }
}
public class Err2 : Err
{
public override string Code { get => "200"; }
}
public class Err3 : Err
{
public override string Code { get => "300"; }
}
[Route("api/test")]
[ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
[ProducesResponseType(typeof(Err), StatusCodes.Status400BadRequest)]
[ApiController]
public class TestController : ControllerBase
{
[HttpGet]
public ActionResult Get()
{
int i = (new Random().Next(1, 11));
if (1 < 4)
return BadRequest(new Err1());
if (i < 7)
return BadRequest(new Err2());
return Ok("OK");
}
}
這當然會產生一個 swagger 看起來像這樣:
我想要的是這樣的:
所以這里重要的是code=300 不包含在摘要中,因為它沒有在這個程序集中使用。
所以我一直在想的是;
如果反射部分不可能,當然下一個最好的辦法就是以某種方式硬編碼用於此特定服務的所有錯誤類的列表。
大家有什么想法嗎?
所以,對於第一部分,據我所知,不可能通過反射找出是否使用了 class :( 對於第二部分,如果你用 nswag 替換 swashbuckle,你實際上能夠擁有這個很好的“其中之一”-swagger UI 中的功能 :) 但就我而言,這還不夠,所以我想現在這是不可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.