---
title: SAIF.Web.API.Clients dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: bendy
last_reviewed: 2026-09-15
library: SAIF.Web.API.Clients
reference_type: package
---

# SAIF.Web.API.Clients dependencies

`SAIF.Web.API.Clients` has a single same-repo project dependency (`SAIF.Web.API.Core`, for the shared `ApiResponse<T>` envelope and `SAIF.API.Exceptions.*` hierarchy), one internal organizational NuGet package (`SAIF.Framework.Common`, consumed for two string-extension helpers), and two external public packages (`Newtonsoft.Json`, `RestSharp`) that carry its HTTP transport and JSON serialization. It performs no database, external API, or cross-application navigation of its own. Its source files are shared with the [SAIF.Web.API.Clients.35](../saif-web-api-clients-35/overview.md) sibling project, which packages the same `.cs` files for a `net35` target with different package versions.

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| [SAIF.Web.API.Core](../saif-web-api-core/overview.md) | Project Reference | Supplies `SAIF.API.Responses.ApiResponse<T>` (the response envelope returned by `GetResponse<T>`, `PostJson<T>`, `PutJson<T>`, `PatchJson<T>`, `DeleteJson<T>`) and the `SAIF.API.Exceptions.SAIFException` hierarchy (`NoMatchingDataException`, `UnauthorizedAccessException`, `InvalidDataException`, `InternalServerError`) thrown by `ExceptionHandler.ToKnownError`. |
| SAIF.Framework.Common | NuGet Package | Consumed for two `SAIF.Common.Extensions` string helpers, `IsNullOrEmpty()` and `IsNullOrWhiteSpace()`, used in `ExceptionHandler.cs`. This package has no matching same-repo documentation set in this repository, so it is classified as an internal-organization NuGet package. No dependency-documentation lookup was performed for this package, so any of its own business rules are not reflected here**. |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| Newtonsoft.Json | 8.0.3 | `JToken`/`JArray`/`JObject`/`JValue` parsing, `JsonTextReader`/`JsonTextWriter`, `Newtonsoft.Json.JsonSerializer`, and `DateTimeZoneHandling` — used throughout request-body serialization (`JsonSerializer.cs`) and response-shape normalization (`JsonHttpClient.GetContentArray<T>`). |
| RestSharp | 106.12.0 | `RestClient`, `RestRequest`, `Method`, `IRestResponse`, `Parameter`, `IAuthenticator`, `NtlmAuthenticator`, `JsonDeserializer`, and `ISerializer` — the HTTP transport, authentication, and content-handler surface that `JsonHttpClient`, `ExceptionHandler`, and `JsonSerializer` build on. |

## Dependency risks and notes
- **Package-declared dependency version mismatch.** `nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec` declares `SAIF.Framework.Common` version `1.0`, while `SAIF.Web.API.Clients.csproj` pins `2.0.22074.3`. Consumers installing from the nuspec-declared dependency range may resolve an older `SAIF.Framework.Common` than the one this assembly was actually compiled against.
- **Two divergent nuspec files exist** for this package with incompatible relative paths and different declared dependency sets (`src/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec` ships source only; `nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec` ships `lib\net45` assemblies). Which nuspec the build pipeline actually packs was not confirmed from the files read**.
- **`SAIF.Framework.Common` consumption surface is narrow.** Usage is limited to `IsNullOrEmpty()`/`IsNullOrWhiteSpace()` at two call sites in `ExceptionHandler.cs`, with self-evident semantics from their names and call sites*.
- **`System.Web` reference gap.** `SAIF.Web.API.Clients.csproj` declares no `<Reference Include="System.Web" />`, yet `JsonHttpClient.cs` and `HttpContextExtensions.cs` both bind `System.Web.HttpContext`. Whether this resolves implicitly at build time or indicates a stale project file is unconfirmed**.
- **`SAIF.Web.API.Core` is packaged alongside this library**, not a build-time-only reference: `nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec` lists both `SAIF.Web.API.Clients` and `SAIF.Web.API.Core` assemblies under `lib\net45`, so this project reference ships as part of the same NuGet package rather than as a separate consumer dependency.
- **Debug build configuration for a released package.** `pipelines/build-vars-webapiclients.yml` sets `BuildConfiguration: debug`, which is unusual for a package intended for release consumption and may mean shipped binaries are unoptimized with full debug symbols*.
- **No dependency-related validation, retry-scoping, or version pinning guidance is enforced by this library** beyond what is declared in the csproj/nuspec — callers should confirm the resolved `SAIF.Framework.Common`, `Newtonsoft.Json`, and `RestSharp` versions match what their consuming application expects, particularly given the nuspec/csproj version discrepancy noted above.

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with `**` could not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [API reference](api/index.md)

## Sources
- `src/SAIF.Web.API.Clients/SAIF.Web.API.Clients.csproj`
- `src/SAIF.Web.API.Clients/JsonHttpClient.cs`
- `src/SAIF.Web.API.Clients/ExceptionHandler.cs`
- `src/SAIF.Web.API.Clients/JsonSerializer.cs`
- `src/SAIF.Web.API.Clients/Extensions/HttpContextExtensions.cs`
- `src/SAIF.Web.API.Clients.35/SAIF.Web.API.Clients.35.csproj`
- `src/SAIF.Web.API.Core/SAIF.Web.API.Core.csproj`
- `nuspec/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec`
- `src/SAIF.Web.API.Clients/SAIF.Web.API.Clients.nuspec`
- `pipelines/build-vars-webapiclients.yml`

