/// <inheritdoc/> public async ValueTask <ParameterBindingResult> DeserializeFromRequest(HttpRequest request, Type outputType, IBindingErrorCollection bindingErrors, CancellationToken cancellationToken = default) { try { var result = await request.ReadFromJsonAsync(outputType, serializerOptions, cancellationToken).ConfigureAwait(false); if (result is null) { bindingErrors.Add(new BindingError("body", "could not parse body")); return(new ParameterBindingResult(null, ParameterBindingIssues.Error)); } return(new ParameterBindingResult(result)); } catch (JsonException e) { bindingErrors.Add(new BindingError("body", $"could not parse body; {e.Message}")); return(new ParameterBindingResult(null, ParameterBindingIssues.Error)); } }
public override ValueTask <ParameterBindingResult> Factory(HttpContext httpContext, EndpointOptions options, IBindingErrorCollection bindingErrorCollection) { return(options.JsonSerializer.DeserializeFromRequest(httpContext.Request, descriptor.ParameterType, bindingErrorCollection, httpContext.RequestAborted)); }
/// <summary> /// Factory for building parameter from HttpContext /// </summary> public abstract ValueTask <ParameterBindingResult> Factory(HttpContext httpContext, EndpointOptions options, IBindingErrorCollection bindingErrorCollection);
public static void AddMissingNonNullableValue(this IBindingErrorCollection errors, string param) { errors.Add(new BindingError(param, "Missing required parameter")); }
public static void AddMultipleWhenExpectingSingle(this IBindingErrorCollection errors, string param) { errors.Add(new BindingError(param, "Multiple Values when expecting single")); }
public static void AddCouldNotParseError(this IBindingErrorCollection errors, string param, string value) { errors.Add(new BindingError(param, $"Could not parse {value}")); }