Giter Site home page Giter Site logo

restclient.net's Introduction

RestClient.NET

A .NET Library aimed to simplify the writing of REST API Clients

Example

	public class OpenWeatherMapAPI : RestClientBase
	{
		public OpenWeatherMapAPI()
			: base(DataTypes.JSON)
		{
		}

		protected override string Url
		{
			get
			{
				return "http://api.openweathermap.org/data/2.5/";
			}
		}

		protected override HttpClient SetupConnection()
		{
			return new HttpClient();
		}

		public WeatherResult GetWeather(string query)
		{
			return SendRequest<WeatherResult, WeatherGetRequest, WeatherErrorResult>(new WeatherGetRequest()
			{
				Query = query
			});
		}

		public Task<WeatherResult> GetWeatherAsync(string query)
		{
			return SendRequestAsync<WeatherResult, WeatherGetRequest, WeatherErrorResult>(new WeatherGetRequest()
			{
				Query = query
			});
		}

		[DataContract]
		[SegmentDef(1, UrlDefinitionDataTypes.Static, "weather")]
		[ParameterDef("q", UrlDefinitionDataTypes.Data, "Query")]
		protected class WeatherGetRequest : RestGetRequest
		{
			public string Query { get; set; }
		}

		[DataContract]
		public class WeatherResult : RestResult
		{
			[DataMember(Name = "name")]
			public string Name { get; set; }

			[DataMember(Name = "dt")]
			public int TimeStamp { get; set; }

			[DataMember(Name = "id")]
			public int ID { get; set; }

			[DataMember(Name = "cod")]
			public int Cod { get; set; }
		}

		[DataContract]
		protected class WeatherErrorResult : RestErrorResult
		{
		}
	}

using (OpenWeatherMapAPI api = new OpenWeatherMapAPI())
{
	//Make a Sync call.
	OpenWeatherMapAPI.WeatherResult result = api.GetWeather("London,Ca");
	//Use result data
	Console.WriteLine(result.Name + " " + result.TimeStamp);
	//Make an Async call.
	Task<OpenWeatherMapAPI.WeatherResult> task = api.GetWeatherAsync("Fenton,Mi");
	//do other stuff
	Console.WriteLine("OtherStuff");
	//Use result data
	task.Wait();
	Console.WriteLine(task.Result.Name + " " + task.Result.TimeStamp);
}

Release Build Status

Build status

Release Builds are available here: https://ci.appveyor.com/project/nathanmentley/restclient-net-837

Development Build Status

Build status

Bleeding Edge builds are available here: https://ci.appveyor.com/project/nathanmentley/restclient-net

License

RestClient.NET is released under the MIT License: https://tldrlegal.com/license/mit-license

restclient.net's People

Contributors

nathanmentley avatar

Watchers

James Cloos avatar Joel Schecheleski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.