Skip to content

Latest commit

 

History

History
300 lines (205 loc) · 8.74 KB

CHANGELOG.md

File metadata and controls

300 lines (205 loc) · 8.74 KB

Changelog

v1.6.3 and v1.6.4

  • Provide an extension point to customise the ApiException thrown for unsuccessful requests (#257)

v1.6.2

  • RestEase.SourceGenerator: support types with the same name but different arity (#252)

v1.6.1

  • Support passing a custom IRequester when using HttpClientFactory (#244)

v1.6.0

  • Bump Json.NET minimum version to avoid users being accidentally exposed to CWE-755
  • Fix Task<Response<string>> (#230)
  • HttpClientFactory: Allow passing a delegate which is used to configure the created interface instance, e.g. to set properies(#240)

v1.5.7

  • Support multiple attributes on a single parameter (#171)
  • Source generator: Add .g.cs suffix to generated filenames (#226)

v1.5.6

  • HttpClientFactory: A supplied RequestModifier no longer overrides the PrimaryHttpMessageHandler, meaning you can supply this when calling UseWithRestEaseClient (#211, #220)

v1.5.5

  • Update System.Net.Http dependency to avoid CVE-2018-8292
  • Source generator: Speed up slightly

v1.5.4

  • Fix binary break in ApiException (#182)

v1.5.3

  • Add RestClient overloads which accept a HttpMessageHandler
  • Add instructions on using Polly to README (#89)
  • Add ApiException.DeserializeContent<T> (#172)
  • Add additional RestClient constructor and .For overloads
  • Source generator: Don't emit #nullable enable before C# 8
  • Source generator: Fix enum parameters which accept a default value (#181)
  • HttpClientFactory: Add IHttpClientBuilder.UseWithRestEaseClient

v1.5.2

  • SourceGenerator: Add <auto-generated> comment to generated files, to keep StyleCop et al happy (#174)
  • HttpClientFactory: fix types not being correctly registered (#175)

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.HttpRequestMessageRequestInfoOptionsKey for use with HttpClient.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.Proprties through 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 Task properly dispose of the underlying HttpResponseMessage (#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 IFormatProvider to 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 IRequester properties (#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 RestClient overloads which take a Uri (#27)

v1.3.2

  • Add support for netstandard1.1

v1.3.1

  • If you make your interface IDisposable, disposing it will dispose the underlying HttpClient
  • If your method return type is Task<HttpResponseMessage>, use HttpCompletionOption.ResponseHeadersRead instead of HttpCompletionOption.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 RequestQueryParamSerializerInfo parameter to methods on IRequestQueryParamSerializer
  • Add support for specifying IFormattable format 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

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.For overloads

1.0.2

  • Allow interface inheritance (#3)

1.0.1

  • JsonRequestBodySerializer sets a default Content-Type header of application/json

1.0.0

  • Initial Release