AdvancedRestHandler 1.7.0
dotnet add package AdvancedRestHandler --version 1.7.0
NuGet\Install-Package AdvancedRestHandler -Version 1.7.0
<PackageReference Include="AdvancedRestHandler" Version="1.7.0" />
paket add AdvancedRestHandler --version 1.7.0
#r "nuget: AdvancedRestHandler, 1.7.0"
// Install AdvancedRestHandler as a Cake Addin #addin nuget:?package=AdvancedRestHandler&version=1.7.0 // Install AdvancedRestHandler as a Cake Tool #tool nuget:?package=AdvancedRestHandler&version=1.7.0
AdvancedRestHandler
A utility code that can be used to request Data from services...
This library is based on my experience and need of working in the past company, taking many services in. I could handle any request so far using it, and every time I felt it doesn't support my need, i tried to expand it.
First install the package using following commands, or download it manually from release section...
Install-Package AdvancedRestHandler -Version 1.7.0
or
dotnet add package AdvancedRestHandler --version 1.7.0
Then you can use the library. The requests can be done as simply as calling:
AdvancedRestHandler arh = new AdvancedRestHandler([baseUrl], [fixEndOfUrl]);
TResponse response = arh.GetData<TResponse>(url, [options]);
in the above code, in the AdvancedRestHandler
constructor:
-baseUrl
is a fixed part of url in a service, which can also be null
-fixEndOfUrl
is to automatically attach path as resource in a way that base url of "https://test.test" and calling a operation service of "the-service" had a result of "https://test.testthe-service" or in the other hand, base url of "https://test.test/" and a service url of "/the-service" would result in "https://test.test//the-service", but with this option which is true by default, it will result in "https://test.test/the-service". but due to some services, which they think of '/' as part of the path, and it's existance mean different route, I kept the flag, so it can be turned off.
in the GetData
:
TResponse
is the type of data you are receiving and the incoming json or (i'm not sure if i pars XML, but if supported XML) should be deserialized tourl
depending on the existence of baseUrl can be either the full url to a service, or the versitile part of the path in the service urloptions
are modifier that can affect the behaviour of the service
Also note that request can be:
- A primitive
- A Type
- A Type inherited from ArhResponse
- An object of type ArhResponse<[Your Type]>
- An object of type ArhStringResponse
Exceptions
There are option exceptions for external HttpClient
and IHttpClientFactory
that are consumed by ArhRestHandler.
RestHandlerInitializerOptions:
The Arh RestHandlerInitializerOptions
is a model that provide options that you will set in the beginning of Arh life-cycle
FixEndOfUrl
: (Throw exceptions if set to true) This option fix the slash/
at the end of your URLs, so you don't need to think about your partial url passed every timeSslProtocols
: (Does nothing if is set) This option allow you to change your request SSL/TSL protocols
RestHandlerRequestOptions:
The Arh RestHandlerRequestOptions
is a model that provide options per request of ARH
SslProtocols
: (Does nothing if is set) This option allow you to change your request SSL/TSL protocols
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Extensions.Http (>= 2.1.1)
- Newtonsoft.Json (>= 9.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
1.7.0
- Fix bug regarding FormUrlEncode were empty
1.6.0
- Add support for using custom SSL/TSL protocols
1.5.0
- Supports external HttpClient
- Supports IHttpClientFactory
* Note: In case of using the `HttpClient` or returning a same instance of `HttpClient` in the `IHttpClientFactory`, some configuration will get overriden by ARH (such as Timeout).
1.4.0
- Fix bug with inherited ArhResponse and empty response
1.3.0
- Add Async version of methods
1.2.0:
- Add PUT, PATCH and DELETE method
1.1.1:
- Add Author and Project details
1.1.0:
- Changed default namespace name from "AdvancedRestHandler" to "Arh" due to main class interfrences with namespace name
1.0.0: Initial Package