Tense.Rql 0.0.6-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.6-alpha
NuGet\Install-Package Tense.Rql -Version 0.0.6-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.6-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.6-alpha
#r "nuget: Tense.Rql, 0.0.6-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.6-alpha&prerelease

// Install Tense.Rql as a Cake Tool
#tool nuget:?package=Tense.Rql&version=0.0.6-alpha&prerelease

Tense.Rql

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:

RqlNode

The RqlNode class is a structured representation of an RQL Statement. It has various functions to compile, inspect and manipulate the statement. An RqlNode 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 EQ, representing equality. The EQ operation takes two paramters, and it will check whether parameter 1 is equal to parameter 2. The first parmater is another RqlNode. This node has the operation PROPERTY, and it takes one paramter. The PROPERTY 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.

RqlNode.Parse

RqlNode RqlNode.Parse(statement)

  • statement - the RQL Statement to be compiled

The RqlNode.Parse function is used to parse, or compile an RQL Statement into an RqlNode representation.

Returns

An RqlNode that represents the RQL statement. The function alwasys returns an RqlNode. If the statement to be compiled is blank or whitespace, the function will return an RqlNode with an Operation of NOOP, and no parameters.

Exceptions

  • RqlFormatException - An exception that details a Syntax error in the RQL Statement.
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 137 10/2/2022
0.0.12-alpha 99 6/5/2022
0.0.11-alpha 117 5/30/2022
0.0.10-alpha 112 5/26/2022
0.0.9-alpha 111 5/25/2022
0.0.8-alpha 110 5/23/2022
0.0.7-alpha 104 5/23/2022
0.0.6-alpha 105 5/22/2022
0.0.5-alpha 110 5/21/2022
0.0.4-alpha 112 5/21/2022
0.0.3-alpha 116 5/21/2022
0.0.2-alpha 114 5/14/2022

Pre-release. DO NOT USE.