ASP.NET Core 6.0 - как использовать JsonPatch в минимальных API?
я понимаю
JsonPatch
в https://docs.microsoft.com/en-us/aspnet/core/web-api/jsonpatch?view=aspnetcore-6.0, но это для MVC. Когда я делаю это в таких кодах, как:
Program.cs
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<JsonOptions>(opt =>
{
opt.SerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
opt.SerializerOptions.Converters.Add(new DecimalJsonConverter());
});
builder.Services.AddControllersWithViews().AddNewtonsoftJson();
...
PlayerModule.cs
public class PlayerModule : ICarterModule
{
public override void AddRoutes(IEndpointRouteBuilder app)
{
app.MapMethods("/api/portal/player/{id}", new string[] { "PATCH" }, PatchPlayer);
}
}
...
[HttpPatch]
private async Task<IResult> PatchPlayer(int id, [FromBody] JsonPatchDocument<PlayerSchema> data) {
... // The data is always empty
}
где
PlayerSchema
является:
public class PlayerSchema {
public int ID { get; set; }
public string Password { get; set; }
public string EMail { get; set; }
... and other properties
}
И я звоню
PATCH /api/portal/player/1
с телом:
{
"eMail": "something@some.net"
}
И
JsonPatchDocument
всегда пусто (не null, просто Count = 0).
Какова минимальная альтернатива API для этой функции или она должна работать так же, как MVC?