Skip to content

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

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