![]() |
VOOZH | about |
dotnet add package Franz.Common.Http.Bootstrap --version 2.2.7
NuGet\Install-Package Franz.Common.Http.Bootstrap -Version 2.2.7
<PackageReference Include="Franz.Common.Http.Bootstrap" Version="2.2.7" />
<PackageVersion Include="Franz.Common.Http.Bootstrap" Version="2.2.7" />Directory.Packages.props
<PackageReference Include="Franz.Common.Http.Bootstrap" />Project file
paket add Franz.Common.Http.Bootstrap --version 2.2.7
#r "nuget: Franz.Common.Http.Bootstrap, 2.2.7"
#:package Franz.Common.Http.Bootstrap@2.2.7
#addin nuget:?package=Franz.Common.Http.Bootstrap&version=2.2.7Install as a Cake Addin
#tool nuget:?package=Franz.Common.Http.Bootstrap&version=2.2.7Install as a Cake Tool
Package: Franz.Common.Http.Bootstrap
-Current Version: v2.2.7
Opinionated HTTP bootstrapper for the Franz Framework. Centralizes common ASP.NET Core HTTP wiring (controllers, auth, headers, docs, serialization, health checks, multi-tenancy) and optionally registers config-driven Refit clients so applications get consistent, production-ready defaults with minimal boilerplate.
Program.cs tidy.# Example: add private feed (adjust your feed credentials)
dotnet nuget add source "https://your-private-feed-url" \
--name "AzurePrivateFeed" \
--username "<user>" \
--password "<pass>" \
--store-password-in-clear-text
dotnet add package Franz.Common.Http.Bootstrap --version 1.4.1
using Franz.Common.Http.Bootstrap.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Adds controllers, auth, headers, docs, multi-tenancy, serialization, health, etc.
builder.Services.AddHttpArchitecture(builder.Environment, builder.Configuration, typeof(Program).Assembly);
var app = builder.Build();
app.UseHttpArchitecture(); // optional pipeline helper if provided
app.MapControllers();
app.Run();
AddHttpArchitecture(...) wires the canonical Franz HTTP stack. If Refit is enabled in configuration it will also register Refit clients automatically.
When Franz:HttpClients:EnableRefit is true, the bootstrapper will:
Read Franz:HttpClients:Apis from configuration.
Resolve each typed Refit interface (prefer InterfaceType � assembly-qualified; falls back to assembly scan).
Invoke AddFranzRefit<TClient>(...) reflectively to register the typed client.
For each client it wires:
FranzRefitHeadersHandler (adds X-Correlation-ID, X-Tenant-Id, optional X-User-Id)FranzRefitAuthHandler (if an ITokenProvider is registered){
"Franz": {
"HttpClients": {
"EnableRefit": true,
"Apis": {
"Weather": {
"InterfaceType": "MyApp.ApiClients.IWeatherApi, MyApp",
"BaseUrl": "https://api.weather.local",
"Policy": "DefaultHttpRetry"
}
}
}
}
}
Notes
InterfaceType (assembly-qualified) is recommended for deterministic resolution.Policy is optional � if present the bootstrapper will attach the named policy from the host's IPolicyRegistry<string>.Franz.Common.Http.MultiTenancy.When enabling Refit you must ensure the host project references the Refit integration and related primitives:
Franz.Common.Http.Refit (the Refit integration package)Refit.HttpClientFactory (provides AddRefitClient<T>()) or an equivalent Refit package exposing factory helpersMicrosoft.Extensions.HttpPolly & Microsoft.Extensions.Http.Polly (if you want policy integration)Serilog (recommended for enriched logging)OpenTelemetry.Api (optional; used to tag Activity.Current)The bootstrapper itself depends on other Franz packages (http modules). Make sure those Franz packages are available to the host.
Refit clients not registered:
"Franz:HttpClients:EnableRefit": true and that Franz.Common.Http.Refit is referenced in the host project.Typed interface cannot be resolved:
InterfaceType with the assembly-qualified type name (e.g. MyApp.ApiClients.IWeatherApi, MyApp) to the config entry or ensure the interface is in the assembly passed to AddHttpArchitecture.AddRefitClient<T>() not found:
Refit.HttpClientFactory (or the Refit package exposing the factory) is referenced in the project that performs the registration, and add using Refit; where needed.Polly policy not applied:
IPolicyRegistry<string> (services.AddPolicyRegistry().Add("MyPolicy", policy)).builder.Services.AddPolicyRegistry()
.Add("DefaultHttpRetry", HttpPolicyExtensions
.HandleTransientHttpError()
.WaitAndRetryAsync(new[] { TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(300) }));
builder.Services.AddFranzRefit<MyApp.ApiClients.IWeatherApi>(
name: "Weather",
baseUrl: "https://api.weather.local",
policyName: "DefaultHttpRetry");
v1.4.1
For full changelog/history see the repository CHANGELOG.md.
This package is part of the private Franz Framework. Contributions are internal; follow your team�s contribution guidelines. Licensed under MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.7 | 95 | 6/7/2026 |
| 2.2.6 | 104 | 6/6/2026 |
| 2.2.5 | 100 | 6/4/2026 |
| 2.2.4 | 88 | 6/3/2026 |
| 2.2.3 | 97 | 6/2/2026 |
| 2.2.2 | 99 | 6/2/2026 |
| 2.2.1 | 97 | 5/24/2026 |
| 2.1.4 | 112 | 4/27/2026 |
| 2.1.3 | 102 | 4/26/2026 |
| 2.1.2 | 102 | 4/26/2026 |
| 2.1.1 | 106 | 4/22/2026 |
| 2.0.2 | 122 | 3/30/2026 |
| 2.0.1 | 115 | 3/29/2026 |
| 1.7.8 | 117 | 3/2/2026 |
| 1.7.7 | 116 | 1/31/2026 |
| 1.7.6 | 123 | 1/22/2026 |
| 1.7.5 | 117 | 1/10/2026 |
| 1.7.4 | 132 | 12/27/2025 |
| 1.7.3 | 199 | 12/22/2025 |
| 1.7.2 | 199 | 12/21/2025 |