将 Emptyvalue 属性 添加到 Query 参数以生成 open api yaml

Add Emptyvalue property to Query param to generate open api yaml

我正在使用 swashbuckle 生成 openapi yaml 配置。 我有这个url。 http://localhost.com/api/comics?limit=100&likedByPeople。 这里我使用 likedByPeople 作为 EmptyValue 查询参数。我需要生成如下的 yaml

parameters:
    - in: query
      name: likedByPeople
      schema:
        type: boolean
      allowEmptyValue: true 

我搜索了一下,没找到方法。 SwaggerParameterSwaggerSchema都没有allowEmptyValue属性。但我在 Microsoft.OpenApi.Models 中看到了这一点。我不确定如何进行此操作。

我通过扩展 System.Attribute 解决了这个问题,并实现了一个扩展 Swashbuckle.AspNetCore.SwaggerGen.IParameterFilter 的相应过滤器。然后注册启动configureServices.

services.AddSwaggerGen( c => {
c.ParameterFilter<SwaggerParamInfoFilter>();
})

参考AnnotationsParameterFilter and SwaggerParameterInfo

的例子