我对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示例,但不会生成枚举中允许的值。这是Swagbuckle,Swagger中的缺陷,还是我对如何使用这些工具缺乏了解?
这是从第二种方法生成的:
正如您所看到的,&#34;目的&#34;仅包括第一个可能的枚举值。并且上下文描述(在ApplicationRequest
上作为显示属性提供)不会在任何地方显示。