![]() |
VOOZH | about |
The CData JDBC Drivers support standard JDBC interfaces to integrate with Web applications running on the JVM. This article details how to connect to Discourse data from a connection pool in Tomcat.
The Discourse API uses API Key authentication.
Discourse requires API Key and Username for authentication. API Keys are generated in the Discourse Admin panel under the API section. You can create user-specific API keys or all-users API keys. Once you have obtained the API Key, set it along with the Domain and Username in the ProfileSettings connection property.
Profile=C:\profiles\Discourse.apip;ProfileSettings='Domain=forum.example.com;APIKey=your_api_key;Username=your_username;'AuthScheme=APIKey;
For assistance in constructing the JDBC URL, use the connection string designer built into the Discourse JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.api.jar
Fill in the connection properties and copy the connection string to the clipboard.
👁 Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)You can see the JDBC URL specified in the resource definition below.
<Resource name="jdbc/api" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.api.APIDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" url="jdbc:api:Profile=C:\profiles\Discourse.apip;ProfileSettings='Domain=forum.example.com;APIKey=your_api_key;Username=your_username;'AuthScheme=APIKey;" maxActive="20" maxIdle="10" maxWait="-1" />
To allow a single application to access Discourse data, add the code above to the context.xml in the application's META-INF directory.
For a shared resource configuration, add the code above to the context.xml located in $CATALINA_BASE/conf. A shared resource configuration provides connectivity to Discourse for all applications.
Discourse data JSP jdbc/API javax.sql.DataSource Container
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/API");
Connection conn = ds.getConnection();
The steps above show how to connect to Discourse data in a simple connection pooling scenario. For more use cases and information, see the JNDI Datasource How-To in the Tomcat documentation.
Connect to live data from Discourse with the API Driver
Connect to Discourse