С помощью MQuery можно с минимальным количеством кода создать простые запросы к любому полю в ASP.NET Core WebApi, например,
Исходные данные
[
{ "id": 1, "username": "Alice", "age": 18, "country": "USA" },
{ "id": 2, "username": "Bob", "age": 20, "country": "UK" },
{ "id": 3, "username": "Carl", "age": 47, "country": "Canada" },
{ "id": 4, "username": "Daniel", "age": 50, "country": "USA" },
{ "id": 5, "username": "Eva", "age": 35, "country": "Poland" },
{ "id": 6, "username": "Fiona", "age": null, "country": "Russia" },
]
Запрос данных с username "Alice"
{your-api-path}?username=Alice
Результат
[
{ "id": 1, "username": "Alice", "age": 18, "country": "USA" },
]
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers(options =>
{
options.AddMQuery(o =>
{
o.DefaultLimit = 50; // Установка значения по умолчанию для пагинации
o.MaxLimit = 50; // Установка максимального значения для пагинации
});
});
}
BlogsController.cs
[HttpGet("api/blogs")]
public ActionResult<IEnumerable<Blog>> Query(Query<Blog> query)
{
return query.ApplyTo(db.Blogs).ToList();
}
Вы также можете выполнять отдельные фильтрации, сортировку и пагинацию
Отдельная фильтрация
query.FilterTo(blogs);
Отдельная сортировка
query.SortTo(blogs);
Отдельная пагинация
query.SliceTo(blogs);
var query = new QueryParser<Foo>().Parse("name[$ne]=Alice&age[$gte]=18&age[$lt]=40&$sort[age]=-1&$skip=1&$limit=2");
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )