We are proud to share our inclusion in the 2024 Gartner Magic Quadrant for Data Integration Tools. We believe this recognition reflects the differentiated business outcomes CData delivers to our customers.
Get the Report →How to connect to REST Data with Squirrel SQL client
Connect to REST data and execute queries in the Squirrel SQL Client.
The CData JDBC Driver for REST enables you to execute queries to REST data in tools like Squirrel SQL Client. In this article, you will create a JDBC data source for REST data and execute queries.
Add the JDBC Driver for REST
Follow the steps below to add the driver JAR.
- In Squirrel SQL, click Windows -> View Drivers.
- Click the plus icon to open the Add Driver wizard.
- In the Name box, enter a user-friendly name for the driver; for example, CData JDBC Driver for REST.
- In the Example URL box, enter jdbc:rest:
- In the Extra Class Path tab, click Add.
- In the file explorer dialog that opens, select the JAR file for the driver, located in the lib subfolder of the installation directory.
- Click List Drivers to populate the Class Name menu with the class name for the driver, cdata.jdbc.rest.RESTDriver.
Define Connection Properties
Follow the steps below to save connection properties in the driver alias.
- Click Windows -> View Aliases.
- In the pane that lists the aliases, click the plus icon.
In the Add Alias wizard that opens, the following fields are required for the JDBC driver:
- Name: Enter a name for the alias; for example, CData REST Source.
- Driver: Select the CData JDBC Driver for REST.
- URL: Enter jdbc:rest:
- If you want to define any additional properties, click Properties.
- In the Driver properties tab of the dialog that appears, select the Use driver properties checkbox.
- In the Specify column, select the checkboxes for the required connection properties.
See the Getting Started chapter in the data provider documentation to authenticate to your data source: The data provider models REST APIs as bidirectional database tables and XML/JSON files as read-only views (local files, files stored on popular cloud services, and FTP servers). The major authentication schemes are supported, including HTTP Basic, Digest, NTLM, OAuth, and FTP. See the Getting Started chapter in the data provider documentation for authentication guides.
After setting the URI and providing any authentication values, set Format to "XML" or "JSON" and set DataModel to more closely match the data representation to the structure of your data.
The DataModel property is the controlling property over how your data is represented into tables and toggles the following basic configurations.
- Document (default): Model a top-level, document view of your REST data. The data provider returns nested elements as aggregates of data.
- FlattenedDocuments: Implicitly join nested documents and their parents into a single table.
- Relational: Return individual, related tables from hierarchical data. The tables contain a primary key and a foreign key that links to the parent document.
See the Modeling REST Data chapter for more information on configuring the relational representation. You will also find the sample data used in the following examples. The data includes entries for people, the cars they own, and various maintenance services performed on those cars.
Below is a typical connection string:
jdbc:rest:DataModel=Relational;URI=C:/people.xml;Format=XML;
- In the dialog that appears after you click OK, click connect to test the connection.
Discover Schemas and Query REST Data
After the metadata has loaded, a new tab for the REST data source is displayed. On the Objects subtab, you can discover schema information, such as the available tables and views.
To view table data, select the table on the Objects tab. The table data is then loaded in a grid on the Content tab.
To execute an SQL query, enter the query on the SQL tab and then click Run SQL (the runner icon). For example:
SELECT [people].[personal.age] AS age, [people].[personal.gender] AS gender, [people].[personal.name.first] AS first_name, [people].[personal.name.last] AS last_name, [vehicles].[model], FROM [people] JOIN [vehicles] ON [people].[_id] = [vehicles].[people_id]