Skip to content

SAIF.Web.API.Clients.35 overview

Documentation context: Packaged Component (NuGet)

⚠️ Dormant/retired legacy variant. SAIF.Web.API.Clients.35 has no source files of its own — all compiled source is linked from the sibling SAIF.Web.API.Clients project via <Compile Include> items. The project is not a member of src/SAIF.Web.API.Clients.sln, so CI never builds it, and its output is referenced only by commented-out <file> entries in nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec, so the net35 assembly is not shipped by the current package definition. Treat this documentation set as a historical record of a legacy multi-target build, not as an actively maintained or distributed component.*

SAIF.Web.API.Clients.35 is the .NET Framework v3.5 build variant of the SAIF Web API client library. It issues JSON HTTP requests to a SAIF Web API and returns a typed result or a typed exception, using the identical linked source as the actively-built SAIF.Web.API.Clients (net4.6.2) project. It contains no business domain logic, no UI, and no persistence.

Purpose

  • Provide a .NET Framework v3.5-targeted build of the SAIF Web API JSON HTTP client for legacy consumers that cannot load a net4.x assembly, by compiling linked source from the sibling SAIF.Web.API.Clients project rather than maintaining separate source.*
  • Given a base URI, caller identity (ClientInfo), and an authenticator, issue a JSON HTTP request to a SAIF Web API and return a typed result (GetResult<T>), a typed result array (GetResults<T>), or a full response envelope (GetResponse<T>, PostJson<T>, PutJson<T>, PatchJson<T>, DeleteJson<T>).
  • Translate unsuccessful HTTP responses into a typed SAIFException subtype sourced from SAIF.Web.API.Core's exception taxonomy.

Responsibilities

  • Serialize outbound request bodies and deserialize inbound JSON payloads using a Newtonsoft-based JsonSerializer with configurable DateTimeZoneHandling.
  • Optionally propagate identity headers (Client-Name, Application-ID, Client-User) on every request and, when configured, an on-behalf-of impersonation header.
  • Retry transient failures (default: transport failure/502/503/401) up to 3 times with a configurable delay before surfacing an error.
  • Map HTTP status codes and response bodies to the appropriate SAIF.API.Exceptions.* type.

Key components

  • JsonHttpClient: public façade exposing the verb-specific request methods (GetResult, GetResults, GetResponse, PostJson, PutJson, PatchJson, DeleteJson) and the private request construction/transport/retry logic.
  • ClientInfo: immutable-style DTO carrying the caller identity emitted as request headers.
  • ExceptionHandler: static type that maps HTTP status code + response body to a specific SAIFException subtype.
  • JsonSerializer: RestSharp.Serializers.ISerializer implementation backed by Newtonsoft.Json.
  • EnvironmentSetting: immutable key/value DTO not referenced by any other type in this library's compiled scope — an unused public DTO here.*

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • src/SAIF.Web.API.Clients.35/SAIF.Web.API.Clients.35.csproj
  • src/SAIF.Web.API.Clients.35/packages.config
  • src/SAIF.Web.API.Clients/JsonHttpClient.cs
  • src/SAIF.Web.API.Clients/ClientInfo.cs
  • src/SAIF.Web.API.Clients/ExceptionHandler.cs
  • src/SAIF.Web.API.Clients/JsonSerializer.cs
  • src/SAIF.Web.API.Clients/EnvironmentSetting.cs
  • src/SAIF.Web.API.Clients.sln
  • nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec