Direct Query
Version 23.0.8844
Direct Query
Version 23.0.8844
The Direct Query feature allows users to send their own SQL queries to the data-sources. The SQL query is then handled by the underlying provider which returns the requested information in a JSON formatted-response. This can be useful for cases where the data requirement do not correspond exactly to an OData request.
Enable Direct Query
Direct Query is disabled by default, but can be enabled for each existing connection in the API Server. To do so, check the box ‘Allow Direct Queries’ in the option for the connection. API Users must also be explicitly authorized to perform Direct query, by checking the box ‘Allow Direct Query’ in the User options. Because of the security implications associated with running any SQL queries against a database, CData recommends administrators be mindful of which users are given access to the Direct SQL Query feature.
Send a Custom Query
Once Direct query is enabled on a connection, users can submit SQL queries directly to the api endpoint query.rsc\<ConnectionName>
.
POST data
The SQL query must be passed as POST data in a JSON object:
POST http://MyServer:MyPort/query.rsc/MyConnection
{
"query": "SELECT UserID, Name, LastModified FROM Users"
}
Parameters
Query parameters can be included in the POST data:
POST http://MyServer:MyPort/query.rsc/MyConnection
{
"query": "SELECT UserID, ParentID, Name FROM Users WHERE UserId=@uid AND ParentID=@pid",
"parameters": "@ui=201, @pid=101"
}
Sample Response
Using the query above as an example, here is a sample response from the Direct Query endpoint:
{
"items": [
{
"UserId": 1,
"LastModified": null,
"Name": "Alice"
},
{
"UserId": 2,
"LastModified": null,
"Name": "Bob"
},
...
]
}