Tense.Rql
0.0.14-alpha
dotnet add package Tense.Rql --version 0.0.14-alpha
NuGet\Install-Package Tense.Rql -Version 0.0.14-alpha
<PackageReference Include="Tense.Rql" Version="0.0.14-alpha" />
paket add Tense.Rql --version 0.0.14-alpha
#r "nuget: Tense.Rql, 0.0.14-alpha"
// Install Tense.Rql as a Cake Addin #addin nuget:?package=Tense.Rql&version=0.0.14-alpha&prerelease // Install Tense.Rql as a Cake Tool #tool nuget:?package=Tense.Rql&version=0.0.14-alpha&prerelease
<h1>Tense.Rql</h1> A library that supports RQL for REST Services. The Tense.Rql works in conjunction with the Tense package.
The Resource Query Language (RQL) is a query language designed for use in URIs with object style data structures. The language provides powerful filtering capabilities to your endpoints. In addition, the RQL language can be used to support multi-update / multi-delete operations on resources.
The RQL language is used to describe the SQL Statement that will be used to perform the operation. In accordance with that goal, the Tense.Rql package contains the following features:
<h2>RqlNode</h2> The <b>RqlNode</b> class is a structured representation of an RQL Statement. It has various functions to compile, inspect and manipulate the statement. An <b>RqlNode</b> is a hierarchical representation of the RQL statement. It consists of an Operation, and a set of parameters. Each parameter may be another RqlNode, or it may be an object value.
For example, the RQL Statement
BookId=1
is compiled into
Each node begins with an operation. In this case, the operation is <b>EQ</b>, representing equality. The <b>EQ</b> operation takes two paramters, and it will check whether parameter 1 is equal to parameter 2. The first parmater is another <b>RqlNode</b>. This node has the operation <b>PROPERTY</b>, and it takes one paramter. The <b>PROPERTY</b> operation means that its single parameter is the name of a member in a model. The parameter for this operation is an object value - a string in this case - that holds the value "BookId".
The second parameter of the parent node is an object value -- an int in this case -- holding the value 1.
This node can be used to generate the SQL clause:
BookId = 1
Which can then be placed inside of a WHERE clause.
<h3>RqlNode.Parse</h3>
<i>RqlNode</i> <b>RqlNode</b>.Parse(<i>statement</i>)
- <i>statement</i> - the RQL Statement to be compiled
The <b>RqlNode</b>.Parse function is used to parse, or compile an RQL Statement into an <b>RqlNode</b> representation.
<b>Returns</b>
An <b>RqlNode</b> that represents the RQL statement. The function alwasys returns an <b>RqlNode</b>. If the statement to be compiled is blank or whitespace, the function will return an <b>RqlNode</b> with an Operation of NOOP, and no parameters.
<b>Exceptions</b>
- <b>RqlFormatException</b> - An exception that details a Syntax error in the RQL Statement.
<h2>Change History</h2>
<table>
<tr>
<th>Date</th>
<th>Description</th>
<th>Version</th>
</tr>
<tr>
<td>05/23/2022</td>
<td>Fixed DateTime parsing bugs.</td>
<td>0.0.8-alpha</td>
</tr>
<tr>
<td>05/26/2022</td>
<td>Fixed Numeric parsing bugs.</td>
<td>0.0.10-alpha</td>
</tr>
<tr>
<td>05/29/2022</td>
<td>Fixed syntax error reporting.</td>
<td>0.0.11-alpha</td>
</tr>
<tr>
<td>06/05/2022</td>
<td>Fixed inclusion of count with select.</td>
<td>0.0.12-alpha</td>
</tr>
</table>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- AutoMapper (>= 12.0.0)
- Microsoft.AspNetCore.Mvc.Core (>= 2.2.5)
- Swashbuckle.AspNetCore (>= 6.4.0)
- System.Drawing.Common (>= 6.0.0)
- Tense (>= 0.0.6-alpha)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Tense.Rql:
Package | Downloads |
---|---|
Tense.Rql.SqlServer
A library to add RQL support to RESTful Web Services using SQL Server |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.0.14-alpha | 153 | 10/2/2022 |
0.0.12-alpha | 111 | 6/5/2022 |
0.0.11-alpha | 127 | 5/30/2022 |
0.0.10-alpha | 121 | 5/26/2022 |
0.0.9-alpha | 121 | 5/25/2022 |
0.0.8-alpha | 119 | 5/23/2022 |
0.0.7-alpha | 114 | 5/23/2022 |
0.0.6-alpha | 125 | 5/22/2022 |
0.0.5-alpha | 122 | 5/21/2022 |
0.0.4-alpha | 123 | 5/21/2022 |
0.0.3-alpha | 127 | 5/21/2022 |
0.0.2-alpha | 125 | 5/14/2022 |
Pre-release. DO NOT USE.