Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type SwaggerDefaultValues () =
- interface IOperationFilter with
- member this.Apply(operation: Operation, context: OperationFilterContext): unit =
- let parameters =
- operation
- |> Option.ofObj
- |> Option.bind (fun operation -> Option.ofObj operation.Parameters)
- |> Option.map (fun parameters -> parameters.OfType<NonBodyParameter>())
- |> Option.defaultValue Seq.empty
- for parameter in parameters do
- let parameterDescription =
- context.ApiDescription.ParameterDescriptions
- |> Seq.tryFind (fun x -> x.Name = parameter.Name)
- let description =
- parameterDescription
- |> Option.bind (fun description -> Option.ofObj description.ModelMetadata)
- |> Option.bind (fun modelMetadata -> Option.ofObj modelMetadata.Description)
- if isNull parameter.Description && Option.isSome description
- then parameter.Description <- description.Value
- let routeInfo = parameterDescription |> Option.map (fun x -> x.RouteInfo)
- if Option.isSome routeInfo then
- if isNull parameter.Default then parameter.Default <- routeInfo.Value.DefaultValue
- parameter.Required <- ((parameter.Required) || (not(routeInfo.Value.IsOptional)))
- ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement