RestEase 1.5.1
Easy-to-use typesafe REST API client library, which is simple and customisable.
Write a C# interface which describes your API, and RestEase generates an implementation you can call into.
Source Generators are here! Reference the RestEase.SourceGenerator NuGet package.
Showing the top 20 packages that depend on RestEase.
| Packages | Downloads |
|---|---|
|
WireMock.Net
Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.
|
17 |
|
WireMock.Net
Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.
|
16 |
|
WireMock.Net
Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.
|
15 |
|
WireMock.Net
Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape.
|
14 |
Changelog
v1.5.1
- RestEase.SourceGenerator is out of preview!
- Add support for
[BaseAddress] - Improve how content headers behave: if a method has a
[Body]parameter, contents headers are always sent - HttpClientFactory: allow passing a RequestModifier to AddRestEaseClient (#164)
- HttpClientFactory: add overloads which take a Uri
- .NET 5: Add
RestClient.HttpRequestMessageRequestInfoOptionsKeyfor use withHttpClient.Options - Minor bug fixes
v1.5.0
- Support content-related headers on a method, even if the method doesn't specify a body (#156)
- Add the RestEase.SourceGenerator NuGet package (currently in preview)
- Add the RestEase.HttpClientFactory NuGet package
v1.4.12
- Add support for multiple raw query strings (#151)
- Add netstandard1.2 target
- README improvements
v1.4.11
- Add extended formats for property headers and header params (#123)
- Make RequestInfo available to the RequestModifier (#133)
- Add Nullable Reference Type annotations
- README improvements (#127, #129, #132, #135, #138)
v1.4.10
- Add
[BasePath](#113)
v1.4.9
- Support custom path parameter/property serialization (thanks to @sharparam). This is useful for enums (#95)
- Support setting
HttpRequestMessage.Proprtiesthrough properties and parameters (thanks to @Husqvik) (#116) - Allow request body headers to be sent, if the body is null (#109)
v1.4.8
- Avoid deadlock in ModifyingHttpClientHandler (#115)
- Avoid crash if a user's HttpClientHandler returns a HttpResponseMessage with a null body (#108)
- Add assembly name to generated type name, to avoid conflicts when two assemblies both use the same interface (#108)
- Improve README (#107, #111)
v1.4.7
- Fix crash introduced by (#98) when a method has a non-primitive struct type with a default value
v1.4.6
- Fixed ignored QueryAttribute.Name when set using property setter (
[Query(Name = "customName"))(#94) - If type creation fails, make sure all subsequent attempts throw the same exception (#93)
- Support
byte[]bodies (#91) - Support generic methods (as well as generic interfaces) (#92)
- Support netstandard2.0 as a separate target (reduces dependencies for netstandard2.0+ projects) (#88)
- Reflect optional parameters in implementation for IronPython (#98)
v1.4.5
- Fix memory leak (#74)
- Allow a custom class to be used to control query param serialization (#61)
- Make sure HttpResponseMessage is properly disposed (this wasn't causing a memory leak) (#82)
- Add query properties (#70)
v1.4.4
- Ensure that methods which return
Taskproperly dispose of the underlyingHttpResponseMessage(#65)
v1.4.3
- Add support for
Task<Stream>responses (#56) - Various README improvements (#53, #55, #58, #59)
v1.4.2
- Move to abstract base classes for custom serializers and deserializers
- Add MethodInfo to the IRequestInfo, and pass to custom serializers and deserializers. This allows custom serializers and deserializers to look at e.g. custom attributes on the method which was called (#51)
- Allow an
IFormatProviderto be specified, which overrides the culture on the thread which calls RestEase's methods (#49) - Reduce json.net dependency version to 6.0.1 for net45 (#52)
- Add
RestClient.For(Type type, IRequester requester)overload (#43)
v1.4.1
- Fix bug where unicode characters were incorrectly double-encoded (#46)
- Add support for
IRequesterproperties (#38) - Add non-generic
RestClient.For(Type type)overload (#43)
v1.4.0
- BREAKING CHANGE: Remove support for .NET 4.0. Microsoft.Bcl.Async does not work well with csproj-based .NET Core projects
- Add information about the request to ApiException (#30)
- Work around an issue when running on Mono which caused a double '??' in URLs (#35)
v1.3.3
- Don't crash if a
[Header]attribute on a method is used to remove one specified on the interface / on a property (#29) - Add
RestClientoverloads which take aUri(#27)
v1.3.2
- Add support for netstandard1.1
v1.3.1
- If you make your interface
IDisposable, disposing it will dispose the underlyingHttpClient - If your method return type is
Task<HttpResponseMessage>, useHttpCompletionOption.ResponseHeadersReadinstead ofHttpCompletionOption.ResponseContentRead, allowing you to control if and when the content is read. - Add support for the HTTP Patch method
- Add
[Path(UrlEncode = false)], allowing URL encoding to be turned off for individual path parameters - Remove the dependency on all of NetStandard.Library (for .NET Core targets)
v1.3.0
- BREAKING CHANGE: Add a
RequestQueryParamSerializerInfoparameter to methods onIRequestQueryParamSerializer - Add support for specifying
IFormattableformat strings for query parameters, path parameters, and path properties (#21)
v1.2.3
- Allow null BaseAddress on HttpClient
- Make ApiException constructor public, to allow easier unit testing of RestEase consumers
v1.2.1, v1.2.2
- Fix metadata fields in NuGet package (no functional changes)
v1.2.0
- Add support for path properties - path compoments which are the same for every request (#16)
- Add support for raw, unencoded query parameters (#17)
- Support query parameters without a key
- Improve some error messages
v1.1.2
- Avoid dependency on System.Net.Http NuGet package on .NET 4.5
v1.1.1
- Avoid dependency on Microsoft.Net.Http on .NET 4.5
v1.1.0
- Add support for .NET Core (.NET Standard 1.3) - thanks to Fazouane Marouane
v1.0.11
- Fix a test
v1.0.10
- Do encode '/' in path parameters
v1.0.9
- Encode space as '%20' rather than '+' in path parameters
- Don't encode '/' in path parameters
v1.0.8
- Fix issue where query parameters not decorated with
[Query]would always be serialized as ToString, regardless of any[SerializationMethod]attributes
v1.0.7
- Handle null paths (e.g.
[Post]or[Get(null)])
v1.0.6
- Support .NET 4.0 (using Microsoft.Net.Http and Microsoft.Bcl.Async as dependencies)
- URL Encode path parameters
v1.0.5
- Allow custom serialization of query parameters and query maps
- Add
[SerializationMethods]attribute, to specify the default serialization method for bodies and query parameters - Move to using a builder pattern for
RestClient, to make specifying custom serializers/deserializations/configuration easier. The old methods are still present, but are marked as deprecated. Please upgrade to the new methods (suggested by the deprecation messages).
v1.0.4
- Fix race condition when creating implementations (#4)
1.0.3
- Allow interface headers in interface inheritance (#3)
- Add missing
RestClient.Foroverloads
1.0.2
- Allow interface inheritance (#3)
1.0.1
JsonRequestBodySerializersets a default Content-Type header ofapplication/json
1.0.0
- Initial Release
.NET Framework 4.5
- Newtonsoft.Json (>= 6.0.1)
.NET Standard 1.1
- NETStandard.Library (>= 1.6.0)
- Newtonsoft.Json (>= 9.0.1)
- System.Collections.Concurrent (>= 4.0.12)
- System.Net.Http (>= 4.1.0)
- System.Reflection (>= 4.1.0)
- System.Reflection.Emit (>= 4.0.1)
.NET 5.0
- Newtonsoft.Json (>= 11.0.1)
.NET Standard 2.0
- Newtonsoft.Json (>= 11.0.1)
- System.Reflection.Emit (>= 4.0.1)
.NET Standard 2.1
- Newtonsoft.Json (>= 11.0.1)
| Version | Downloads | Last updated |
|---|---|---|
| 1.6.4 | 11 | 10/01/2026 |
| 1.6.3 | 9 | 10/01/2026 |
| 1.6.2 | 10 | 10/01/2026 |
| 1.6.1 | 8 | 10/01/2026 |
| 1.6.0 | 9 | 10/01/2026 |
| 1.5.7 | 8 | 10/01/2026 |
| 1.5.6 | 10 | 10/01/2026 |
| 1.5.5 | 7 | 10/01/2026 |
| 1.5.4 | 9 | 10/01/2026 |
| 1.5.3 | 8 | 10/01/2026 |
| 1.5.2 | 10 | 10/01/2026 |
| 1.5.1 | 8 | 10/01/2026 |
| 1.5.0 | 9 | 10/01/2026 |
| 1.4.12 | 9 | 10/01/2026 |
| 1.4.11 | 7 | 10/01/2026 |
| 1.4.10 | 10 | 10/01/2026 |
| 1.4.9 | 7 | 10/01/2026 |
| 1.4.8 | 6 | 10/01/2026 |
| 1.4.7 | 10 | 10/01/2026 |
| 1.4.6 | 10 | 10/01/2026 |
| 1.4.5 | 8 | 10/01/2026 |
| 1.4.4 | 10 | 10/01/2026 |
| 1.4.3 | 10 | 10/01/2026 |
| 1.4.2 | 7 | 10/01/2026 |
| 1.4.1 | 10 | 10/01/2026 |
| 1.4.0 | 8 | 10/01/2026 |
| 1.3.3 | 9 | 10/01/2026 |
| 1.3.2 | 9 | 10/01/2026 |
| 1.3.1 | 7 | 10/01/2026 |
| 1.3.0 | 9 | 10/01/2026 |
| 1.2.3 | 9 | 10/01/2026 |
| 1.2.2 | 10 | 10/01/2026 |
| 1.2.1 | 10 | 10/01/2026 |
| 1.2.0 | 9 | 10/01/2026 |
| 1.1.2 | 9 | 10/01/2026 |
| 1.1.1 | 11 | 10/01/2026 |
| 1.0.11 | 11 | 10/01/2026 |
| 1.0.8 | 9 | 10/01/2026 |
| 1.0.7 | 8 | 10/01/2026 |
| 1.0.6 | 8 | 10/01/2026 |
| 1.0.5 | 7 | 10/01/2026 |
| 1.0.4 | 8 | 10/01/2026 |
| 1.0.3 | 9 | 10/01/2026 |
| 1.0.2 | 10 | 10/01/2026 |
| 1.0.1 | 9 | 10/01/2026 |
| 1.0.0 | 9 | 10/01/2026 |
| 0.9.3 | 8 | 10/01/2026 |
| 0.9.2 | 10 | 10/01/2026 |
| 0.9.1 | 10 | 10/01/2026 |