Techbubbles

OData and Windows Azure

 

This post discusses about building a service using CLOUD platform that can reach various devices. What is OData and Where it fits in? OData is a specification that makes very easy to exchange and interact with data on the web. So OData is all about connecting up devices to the CLOUD. This post also discuss how to create a OData Service in Visual Studio 2010 and host it on Windows Azure then explains how to consume the service on Windows phone Mango.

What id OData?

A REST based set of patterns for accessing information via services

It is a great protocol for connecting devices to the CLOUD. The REST API’s which you might have developed having the following common requirements

  • Querying the data
  • Ordering the data
  • Paging the data
  • Filtering the data
  • Even CRUD operations on data

OData provides a common way to do the above operations. If you got your web API and if you use OData then you have got a wide range of options to expose of your data to various client libraries and platforms.

image

1. Create a new Windows Azure Project in Visual Studio 2010 as shown below

image 

2. Create a Data Access layer to access the data from SQL Azure as shown below

image

Your Workout Class looks as below

image

Your data access layer is ready to interact with the database.

The connection string in web.config looks as below, you can local sql database when your developing the application and then can change the connection string to point it to SQL Azure.

image

3. Now Create OData Service- To do this we can use WCF DataService which is Microsoft implementation of OData protocol in .NET. Add a new item to project and select WCF Data Service from dialogue box.

image

Your OData Service Class code looks as below

image

Now you have a OData Service that hooked up to your data model. You can mention what parts of your data that you want to expose in InitializeService method as below

image

You are going to give read permission on your data and also setting the page size to your return data. Now We have got a working OData Service.

Run your service and you can see the below output

image

as it supports multiple formats , if you want to view JSON viewer then you can install JSON viewer from here

image

Support Authentication for OData Service

We allow the authenticated users to insert new workouts in the above service. You need to write some interceptors to achieve this

image

The ChangeInterceptor invokes every time when you insert or update the data on service. If the user is not authenticated then returning the error message back otherwise we are claiming the credentials. Here it is using ACS with Oauth.

The web.config entry for Oauth protection module looks as below. you can download Oauth protection module from here.

image

If request comes with Oauth token then this module communicate with ACS and validates the user.

Following Web.Config entries tells where to look at the ACS host and other service url stuff etc

image

You get the above config values from Windows Azure management portal

image

Build a client to access the above created OData Service as below, we are consuming this windows phone application. Add a service reference to this project

image

image

It simply instantiates the DataServiceCollection and hookup the async handler and then formulate the query. The query is basically what you want to ask the OData Service. Context object in above code is instance generated by the service reference.

When you call LoadAsync then it calls http against that URI. Now run your client application which brings the data from service and shows in windows phone emulator as below

image

The OData protocol http://Odata.org was created to provide a simple, common way to interact with the data on the Web from any platform or device.


Share this post :


Related Posts:

%d bloggers like this: