我对 Swashbuckle 或 Swagger 有一个挑战。我不确定问题出在 Swagger 还是 Swashbuckle 上。我有 web api 调用,使用参数作为 URI 参数实现,并从请求正文中读取内容。
一个是这样实现的:
[Route("application/uri")]
[HttpPost]
public async Task<string> Post([ModelBinder] Application application)
{
return await RegisterApplication(application);
}
另一个是这样实现的:
[Route("loanapplication/json")]
[HttpPost]
public async Task<string> PostByJson(Application application)
{
return await RegisterApplication(application); ;
}
两者都使用相同的请求对象等。ApplicationRequest
该类包括一个枚举,Purpose
. 在第一个服务中,Swagger 文档创建得很漂亮,Application
类型中的每个属性都有很好的文档,如下所示:
但是,使用标准 HTTP 正文 POST 的第二种方法会生成一个不错的 JSON 示例,但不是枚举中允许的值。这是 Swashbuckle 和 Swagger 的缺陷,还是我不知道如何使用这些工具?
这是从第二种方法生成的:
如您所见,“目的”仅包含第一个可能的枚举值。并且上下文描述(在ApplicationRequest
as Display 属性上提供)不会显示在任何地方。