1

我对 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类型中的每个属性都有很好的文档,如下所示:

来自基于 URI 的服务的 Swagger UI

但是,使用标准 HTTP 正文 POST 的第二种方法会生成一个不错的 JSON 示例,但不是枚举中允许的值。这是 Swashbuckle 和 Swagger 的缺陷,还是我不知道如何使用这些工具?

这是从第二种方法生成的:

基于 POST Body 的服务的 Swagger UI

如您所见,“目的”仅包含第一个可能的枚举值。并且上下文描述(在ApplicationRequestas Display 属性上提供)不会显示在任何地方。

4

0 回答 0