Lightweight utilities for shaping API responses dynamically in .NET.
$ dotnet add package AC.Bifrost.DataShapingusing Bifrost.DataShaping;
builder.Services.AddScoped<IDataShaper, DataShaper>();
if (!dataShaper.Validate<GodDto>(query.Fields))
{
return BadRequest();
}
var shaped = dataShaper.ShapeCollection(gods, query.Fields);
Query example:
?fields=name,powerLevel
Response example:
{
"name": "Odin",
"powerLevel": 9001
}
var result = new PaginationResult<ExpandoObject>
{
Items = dataShaper.ShapeCollection(gods, query.Fields),
Page = query.Page,
PageSize = query.PageSize,
TotalCount = totalCount
};
return Ok(result);