SAIF.NetCore.HttpClients dependencies¶
SAIF.NetCore.HttpClients depends on a single internal package for its implemented contracts and on two RestSharp packages (plus Newtonsoft.Json directly) for the HTTP transport and JSON serialization it wraps; because every request target is caller-supplied, the library makes no SAIF web API calls of its own and has no API dependencies to document.
Internal dependencies¶
| Dependency | Reference Type | Usage |
|---|---|---|
| SAIF.NetCore.ServiceContracts | NuGet Package (same-repo) | Implements IHttpJsonClient and IHttpRequestResult; consumes the HttpClientOptions and HttpClientSerializer option types |
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
| RestSharp | 106.11.7 | Core HTTP transport: RestClient, RestRequest, IRestResponse, NtlmAuthenticator, JsonDeserializer |
| RestSharp.Serializers.NewtonsoftJson | 106.11.7 | Supplies UseNewtonsoftJson() on the RestSharp client when HttpClientOptions.Serializer == NewtonsoftJson |
| Newtonsoft.Json | 13.0.1 | JsonConvert and JToken parsing used in error-content extraction and ToReturnType<T> result conversion |
Dependency risks and notes¶
- RestSharp 106.11.7 is several majors behind the current RestSharp release line, and its transitive HTTP-stack dependencies are not independently verified here*.
- A new
RestClientis created for every call and retry attempt, and retries block a thread-pool thread withThread.Sleeprather than an asynchronous delay — a performance and scalability risk under load. HttpJsonClientcarries mutable per-instance state (RequestResult,Headers, bearer token) while being registeredTransientbySAIF.NetCore.ServiceExtensions; sharing an instance across concurrent requests is unsafe.- Every target URL is caller-supplied at request time, so this library hard-codes no fixed SAIF web API endpoint of its own; Newtonsoft.Json remains a direct, genuinely used external dependency for error-content parsing and result conversion.
- Basic auth and bearer credentials can be sent over a plain
http://base URL because no scheme check exists, and 401 is a default retry status, so credentials may be resent on failure — see the library's security and authorization findings for the full risk discussion.
Related documentation¶
- Index
- Overview
- Architecture
- Operations and processes
- Business rules
- Security and authorization
- API reference
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.NetCore.HttpClients/SAIF.NetCore.HttpClients/SAIF.NetCore.HttpClients/SAIF.NetCore.HttpClients.csprojsrc/SAIF.NetCore.HttpClients/SAIF.NetCore.HttpClients/SAIF.NetCore.HttpClients/HttpJsonClient/HttpJsonClient.csArchitecture.md