RAQL.NET
1.0.1
dotnet add package RAQL.NET --version 1.0.1
NuGet\Install-Package RAQL.NET -Version 1.0.1
<PackageReference Include="RAQL.NET" Version="1.0.1" />
<PackageVersion Include="RAQL.NET" Version="1.0.1" />
<PackageReference Include="RAQL.NET" />
paket add RAQL.NET --version 1.0.1
#r "nuget: RAQL.NET, 1.0.1"
#:package RAQL.NET@1.0.1
#addin nuget:?package=RAQL.NET&version=1.0.1
#tool nuget:?package=RAQL.NET&version=1.0.1
RAQL
Rest Api Query Language
RAQL is a SQL-Like Query Language for Rest Api dedicated to querying Rest Api Endpoints that outputs List of Results.
DOCUMENTATION https://lucafabbri.github.io/raql/
Yet another query language
WHy RAQL when you have GraphQL? Because Graph QL not only queries data, but also requires you to specificy which fields you want to get. This requires a big payload using POST even if you want to filter one field. Secondly GraphQL approach it is perfect for querying different sources at once, but quite often you just need to provide your Rest Api consumers the ability to filter data and get the usual Data Transfer Object.
Server side implementations
| name | version | supports | language | repo |
|---|---|---|---|---|
| RAQL.NET | 1.0.0 | - Asp.Net - Linq - EntityFramework | C# | https://github.com/lucafabbri/raql-dotnet |
| RAQL.PHP | 1.0.0 | - Laravel - Eloquent | PHP | https://github.com/lucafabbri/raql-php |
| RAQL.JS | 1.0.0 | - Node - Express.js - Knex.js | Javascript | https://github.com/lucafabbri/raql-js |
Quick start
Specification
RAQL base unit is called Operation, which is a simple structure that requires a field, an operator and a value.
x > 3
name like 'Luca'
field != true
Operations can be link together with classic QL where operator AND, OR, two operations linked in this way is called Clause.
x > 3 and y = 5
name like 'Luca' and age > 20
field != true and branch = 'master'
Clauses can be wrapped with optional parentesis
(x > 3 and y = 5)
(name like 'Luca' and age > 20)
(field != true and branch = 'master')
Clauses can be linked with QL where operator as well and uses parentesis is possible to nest properly the query
(x > 3 and y = 5) or x = 100
(name like 'Luca' and age > 20) or (name = null)
field != true and (branch = 'master' or branch = 'dev')
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Antlr4.Runtime.Standard (>= 4.13.1)
- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.2.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.