Tense.Rql 0.0.10-alpha

This is a prerelease version of Tense.Rql.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Tense.Rql --version 0.0.10-alpha                
NuGet\Install-Package Tense.Rql -Version 0.0.10-alpha                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tense.Rql" Version="0.0.10-alpha" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tense.Rql --version 0.0.10-alpha                
#r "nuget: Tense.Rql, 0.0.10-alpha"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tense.Rql as a Cake Addin
#addin nuget:?package=Tense.Rql&version=0.0.10-alpha&prerelease

// Install Tense.Rql as a Cake Tool
#tool nuget:?package=Tense.Rql&version=0.0.10-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

alt text

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> </table>

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.