REST API / запросы
RsqlParserNet
Парсер RSQL/FIQL-выражений для REST API на .NET
net10.0
Возможности
- Типизированный AST с диагностикой
- Allowlist-предикаты для IQueryable<T> (LINQ)
- Биндинг filter/sort/page в ASP.NET Core
- Асинхронная постраничность EF Core
- Документация параметров в OpenAPI / Swashbuckle / NSwag
Установка
dotnet add package RsqlParserNetБыстрый старт
using RsqlParserNet;
// GET /products?filter=status==active;price=gt=100&sort=-createdAt
if (RsqlParser.TryParse("status==active;price=gt=100", out var query, out var errors))
{
// walk the typed AST, or apply an allowlisted LINQ profile
var predicate = profile.ApplyRsql(query);
var page = await dbContext.Products
.Where(predicate)
.ToRsqlPageAsync(page: 1, pageSize: 25);
}
else
{
return Results.ValidationProblem(errors.ToValidationErrors());
}Основные методы
RsqlParser.TryParseРазбор фильтра в ASTApplyRsqlAllowlist-предикат для LINQToRsqlPageAsyncПодсчёт и материализация страницыПакеты семейства
READMEgithub.com/ai-iskuzhin/RsqlParserNet
Загружаем README из репозитория…