EDK.PartialRequest
1.0.2
See the version list below for details.
dotnet add package EDK.PartialRequest --version 1.0.2
NuGet\Install-Package EDK.PartialRequest -Version 1.0.2
<PackageReference Include="EDK.PartialRequest" Version="1.0.2" />
paket add EDK.PartialRequest --version 1.0.2
#r "nuget: EDK.PartialRequest, 1.0.2"
// Install EDK.PartialRequest as a Cake Addin #addin nuget:?package=EDK.PartialRequest&version=1.0.2 // Install EDK.PartialRequest as a Cake Tool #tool nuget:?package=EDK.PartialRequest&version=1.0.2
EDK.PartialRequest
EDK.PartialRequest is a .NET library designed to simplify patch requests in ASP.NET Core.
Installation
You can install this library via NuGet. Use the following command in the Package Manager Console:
Install-Package EDK.PartialRequest
Or use the dotnet CLI:
dotnet add package EDK.PartialRequest
Usage
First, define a request model that inherits from PartialRequest<T>
where T
is the type of the request model itself. This allows you to utilize the helper methods provided by PartialRequest
.
using EDK.PartialRequest;
public class ExampleRequest : PartialRequest<ExampleRequest>
{
public string? Field1 { get; set; }
public int? Field2 { get; set; }
public bool? Field3 { get; set; }
public object? Field4 { get; set; }
}
Then, in your controller, you can use this request model to check if properties were defined in the deserialized request model:
using Microsoft.AspNetCore.Mvc;
namespace EDK.PartialRequest.Example
{
[ApiController]
[Route("[controller]")]
public class ExampleController : ControllerBase
{
private readonly Dictionary<string, object?> _data = new()
{
{ "prop1", "original" },
{ "prop2", -1 },
{ "prop3", false },
{ "prop4", new { Name = "name" } }
};
[HttpPost("post")]
public object Post([FromBody] ExampleRequest request)
{
return new {
IsField1Defined = request.IsDefined(x => x.Field1),
DefinedProperties = request.GetDefinedProperties(),
};
}
[HttpPatch("patch")]
public object Patch([FromBody] ExampleRequest request)
{
var result = new Dictionary<string, object?>(_data);
if (request.IsDefined(x => x.Field1))
{
result["prop1"] = request.Field1;
}
if (request.IsDefined(x => x.Field2))
{
result["prop2"] = request.Field2;
}
if (request.IsDefined(x => x.Field3))
{
result["prop3"] = request.Field3;
}
if (request.IsDefined(x => x.Field4))
{
result["prop4"] = request.Field4;
}
return result;
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.