是否有等效的<NonBodyParameter>

时间:2019-11-11 12:31:30

标签: swagger swashbuckle .net-core-3.0

我更新了Swashbuckle v5和operation.Parameters()不再有效。是否有替代品?

        {
            var apiDescription = context.ApiDescription;

            operation.Deprecated |= apiDescription.IsDeprecated();

            if (operation.Parameters == null)
            {
                return;
            }

            // REF: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/412
            // REF: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/413
            foreach (var parameter in operation.Parameters<NonBodyParameter>())
            {

                var description = apiDescription.ParameterDescriptions.First(p => p.Name == parameter.Name);

                if (parameter.Description == null)
                {
                    parameter.Description = description.ModelMetadata?.Description;
                }

                if (parameter.Default == null)
                {
                    parameter.Default = description.DefaultValue;
                }

                parameter.Required |= description.IsRequired;
            }
        }

错误CS0307属性'OpenApiOperation.Parameters'不能与类型参数一起使用

1 个答案:

答案 0 :(得分:0)

来自Swashbuckle.AspNetCore GitHub site

  

在OpenAPI v3中,主体参数被拆分为单独的属性   称为RequestBody。因此,我认为您也许可以删除OfType   完全过滤掉,因为集合中的所有值都是“非主体”

我认为您应该可以使用OpenApiParameter