---
title: SAIF.Web.API.Clients.35 overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: bendy
last_reviewed: 2026-09-15
library: SAIF.Web.API.Clients.35
reference_type: package
---

# 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.*

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

> **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
