Chapter 1. Introduction

1.1. Overview

Interacting with HTTP-based services armed only with the relatively low-level classes provided by the .NET Framework is possible, but often leads to your having to repeat the same boilerplate code over and over again as well as evolve your own set of helper methods to translate your objects to and from the text-based world of HTTP requests and responses into the object-based world of .NET consumers of HTTP services. The Spring.Rest project contains the RestTemplate helper class which allows developers to focus on the issues of delivering business value in their applications rather than focusing on low-level plumbing concerns.

RestTemplate provides higher level methods that correspond to each of the six main HTTP methods that make invoking many RESTful services a one-liner and help to enforce REST best practices. It is conceptually similar to other template classes in Spring, such as AdoTemplate and NmsTemplate. It's behavior can be customized by providing callback methods and configuring the IHttpMessageConverters used to marshal objects into the HTTP request body and to unmarshall any response back into an object.

This documentation describes how to use the RestTemplate and its associated IHttpMessageConverters.

Spring.NET REST Client Framework supports the following .NET Frameworks :

  • .NET 2.0

  • .NET Client Profile 3.5 and 4.0

  • .NET Compact Framework 3.5

  • Silverlight 3.0, 4.0 and 5.0

  • Windows Phone 7.0 and 7.1

1.2. What's new in 1.1

Some API changes were made after 1.0. The file, 'breaking-changes.txt', in the root directory of the distribution contains the full listing of breaking changes made for 1.1.
The main breaking change is that IResponseErrorHandler interface has changed and will break 1.0 code that uses custom error handler.

Several new features have been added to 1.1 version. These new features include:

  • Social ready!
    Spring.NET Social is an extension of the Spring.NET REST Client Framework that helps you connect your applications with Software-as-a-Service (SaaS) providers such as Facebook and Twitter.
    As an example, the API binding for Twitter is available here.
    Social projects are good examples of Spring.NET REST Client Framework usage.

  • Task Parallel Library (TPL) support
    Task-based asynchronous REST methods have been added for Frameworks supporting the new Task Parallel Library (TPL) (e.g., .NET 4 and Silverlight 5).
    Read more

  • Testing framework
    Allows you to easily test your RestTemplate based code with your favorite unit test Framework.
    Read more.

  • Silverlight 5 support

  • Lightweight and simple JSON support
    Read more.

  • IResource abstraction from Spring.NET Core
    Read more.

Please refer to the file 'changelog.txt' in the root directory of the distribution for a complete list of issues resolved by this version.

1.3. License Information

Spring.NET REST Client Framework is licensed according to the terms of the Apache License, Version 2.0. The full text of this license are available online at http://www.apache.org/licenses/LICENSE-2.0 . You can also view the full text of the license in the license.txt file located in the root directory of the distribution.