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 →Provide OData Services of Bitbucket Data from a WCF Application
In this article, we will demonstrate the process of generating an OData feed for Bitbucket data by developing a WCF Service Application.
The CData ADO.NET Provider for Bitbucket enables you to rapidly develop service-oriented applications using the Windows Communication Foundation (WCF) framework, providing Bitbucket data data to OData consumers. This article guides you through creating an entity data model for connectivity and a WCF Data Service to expose OData services. You can then consume the feed with various OData clients, such as Power Pivot or applications using the CData ADO.NET Provider for OData.
Create the OData Service
Follow the steps below to create a WCF service application that will provide connectivity to Bitbucket data via OData.
- Open Visual Studio and create a new project. Select the WCF Service Application template.
- Delete the autogenerated IService.cs and Service1.svc.
- Install Entity Framework 6:
Use the Package Manager Console in Visual Studio to install the latest version of Entity Framework. Run the following command to download and install Entity Framework automatically:
Install-Package EntityFramework
- Register the Entity Framework provider:
- Add the following provider entry in the "providers" section of your App.config or Web.config file. This section should already exist if the Entity Framework installation was successful.
<configuration> ... <entityFramework> <providers> ... <provider invariantName="System.Data.CData.Bitbucket" type="System.Data.CData.Bitbucket.BitbucketProviderServices, System.Data.CData.Bitbucket.Entities.EF6" /> </providers> </entityFramework> </configuration>
- Add a reference to System.Data.CData.Bitbucket.Entities.dll, located in lib/4.0 in the installation directory.
- Build the project to complete the setup for using EF6.
- Add the following provider entry in the "providers" section of your App.config or Web.config file. This section should already exist if the Entity Framework installation was successful.
- Click Project -> Add New Item -> ADO.NET Entity Data Model.
- In the Entity Data Model wizard that is displayed, select the 'EF Designer from Database' option.
- In the resulting Choose Your Connection dialog, click New Connection.
In the Connection properties dialog, select the CData Bitbucket Data Source and enter the necessary credentials.
A typical connection string is below:
Workspace=myworkspaceslug;Schema=InformationInitiateOAuth=GETANDREFRESH
For most queries, you must set the Workspace. The only exception to this is the Workspaces table, which does not require this property to be set, as querying it provides a list of workspace slugs that can be used to set Workspace. To query this table, you must set Schema to 'Information' and execute the query SELECT * FROM Workspaces>.
Setting Schema to 'Information' displays general information. To connect to Bitbucket, set these parameters:
- Schema: To show general information about a workspace, such as its users, repositories, and projects, set this to Information. Otherwise, set this to the schema of the repository or project you are querying. To get a full set of available schemas, query the sys_schemas table.
- Workspace: Required if you are not querying the Workspaces table. This property is not required for querying the Workspaces table, as that query only returns a list of workspace slugs that can be used to set Workspace.
Authenticating to Bitbucket
Bitbucket supports OAuth authentication only. To enable this authentication from all OAuth flows, you must create a custom OAuth application, and set AuthScheme to OAuth.
Be sure to review the Help documentation for the required connection properties for you specific authentication needs (desktop applications, web applications, and headless machines).
Creating a custom OAuth application
From your Bitbucket account:
- Go to Settings (the gear icon) and select Workspace Settings.
- In the Apps and Features section, select OAuth Consumers.
- Click Add Consumer.
- Enter a name and description for your custom application.
- Set the callback URL:
- For desktop applications and headless machines, use http://localhost:33333 or another port number of your choice. The URI you set here becomes the CallbackURL property.
- For web applications, set the callback URL to a trusted redirect URL. This URL is the web location the user returns to with the token that verifies that your application has been granted access.
- If you plan to use client credentials to authenticate, you must select This is a private consumer. In the driver, you must set AuthScheme to client.
- Select which permissions to give your OAuth application. These determine what data you can read and write with it.
- To save the new custom application, click Save.
- After the application has been saved, you can select it to view its settings. The application's Key and Secret are displayed. Record these for future use. You will use the Key to set the OAuthClientId and the Secret to set the OAuthClientSecret.
- Select Bitbucket tables and views that you want OData clients to access.
- Click Project -> Add New Item -> WCF Data Service.
Specify the data source class and configure access to the new WCF Data Service. In the example below, the Access Rule for the entities is set to All. This means that any user will be able to read and modify data.
using System; using System.Collections.Generic; using System.Data.Services; using System.Data.Services.Common; using System.Linq; using System.ServiceModel.Web; using System.Web; namespace BitbucketService{ public class BitbucketDataService : DataService<BitbucketEntities> { public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.All); config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3; } } }
- Run the project. Applications that support OData can now access the Salesforce data and reflect any changes. You can access the feed in your browser. The feed will resemble the following:
Consume the OData Service from Power Pivot
You can now use the service from any OData client; for example, Excel Power Pivot.
- Open Excel and click on the Power Pivot Window button.
- A new pop-up will appear. Select the option From Data Feeds.
- In the resulting Table Import Wizard, enter the OData URL. For example, http://localhost:12449/BitbucketDataService.svc/.
- After connecting to the OData service, click the Next button at the bottom of the window.
- A table listing of the available tables will appear in the next window of the wizard. Select which tables you want to import and click Finish.
- Click Close to import the data in Power Pivot.