RestEase.SourceGenerator by Antony Male

<PackageReference Include="RestEase.SourceGenerator" Version="1.5.2" />

Package Files

0 bytes


Legend

  •  Assembly
  •  Namespace
  •  Class
  •  Interface or Abstract Class
  •  Static Class
  •  Struct
  •  Enum
  •  Delegate
  •  Grayed out == non-public

 RestEase.SourceGenerator 1.5.2

Source generator for RestEase: the easy-to-use typesafe REST API client library, which is simple and customisable Generates implementations for RestEase interfaces at compile-time, to provide error-checking, faster execution, and support for platforms which don't support runtime code generation (such as iOS and .NET Native). You must be using the .NET 5 SDK (or higher) to use this. You will also need to install the RestEase package. For more details, see https://github.com/canton7/RestEase#using-resteasesourcegenerator

<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>RestEase.SourceGenerator</id>
    <version>1.5.2</version>
    <authors>Antony Male</authors>
    <developmentDependency>true</developmentDependency>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <license type="expression">MIT</license>
    <licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
    <icon>icon.png</icon>
    <projectUrl>https://github.com/canton7/RestEase</projectUrl>
    <description>Source generator for RestEase: the easy-to-use typesafe REST API client library, which is simple and customisable

Generates implementations for RestEase interfaces at compile-time, to provide error-checking, faster execution, and support for platforms which don't support runtime code generation (such as iOS and .NET Native).

You must be using the .NET 5 SDK (or higher) to use this. You will also need to install the RestEase package.

For more details, see https://github.com/canton7/RestEase#using-resteasesourcegenerator</description>
    <releaseNotes>Changelog
=========

v1.5.2
------

 - SourceGenerator: Add `&lt;auto-generated&gt;` 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&lt;Stream&gt;` 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&lt;HttpResponseMessage&gt;`, 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
------

 - Add support for .NET Core (.NET Standard 1.3) - thanks to [Fazouane Marouane](https://github.com/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.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</releaseNotes>
    <copyright>Copyright © Antony Male 2015-2020</copyright>
    <tags>REST JSON SourceGEnerator</tags>
    <repository type="git" url="https://github.com/canton7/RestEase" />
  </metadata>
</package>