Centralize BaseUrl logic via AcEnv; enforce fail-fast
Refactored BaseUrl handling so FruitBankConstClient delegates all access to AcEnv.BaseUrl in AyCode.Core, ensuring a single source of truth and fail-fast validation. Removed redundant _baseUrl field and logic from FruitBankConstClient. Updated startup files to hydrate BaseUrl from configuration and improved comments to clarify the new delegation and configuration conventions.
This commit is contained in:
parent
25265c02f8
commit
451e029869
|
|
@ -7,19 +7,14 @@ public static class FruitBankConstClient
|
||||||
{
|
{
|
||||||
public static string DefaultLocale = "en-US";
|
public static string DefaultLocale = "en-US";
|
||||||
|
|
||||||
// A nop szerver base URL-je. Induláskor a host tölti fel az appsettings "AyCode:Urls:BaseUrl"-ből
|
// DELEGÁT az AcEnv.BaseUrl-re (AyCode.Core framework, 2026-07): az érték EGY helyen, a kereten él
|
||||||
// (ld. Program.cs / MauiProgram.cs). Az fbHub ÉS a loggerHub is EBBŐL az egy értékből származik (+/fbHub, +/loggerHub).
|
// (fail-fast: hidratálatlan olvasás exception). A hostok induláskor hidratálják az appsettings
|
||||||
// Default: null — ha nincs beállítva, az OLVASÁS exception-t dob, nem megy tovább csendben hiányzó/rossz URL-lel.
|
// "AyCode:Urls:BaseUrl"-ből; az fbHub és a loggerHub URL-je is ebből származik (+/fbHub, +/loggerHub).
|
||||||
// A környezet-váltás az appsettings-ben történik:
|
// Környezet-értékek: dev https://localhost:59579 | prod https://shop.fruitbank.hu | test https://fruitbank.mangoweb.hu | android http://10.0.2.2:59579
|
||||||
// dev: https://localhost:59579 | prod: https://shop.fruitbank.hu | test: https://fruitbank.mangoweb.hu | android: http://10.0.2.2:59579
|
|
||||||
private static string? _baseUrl;
|
|
||||||
public static string BaseUrl
|
public static string BaseUrl
|
||||||
{
|
{
|
||||||
get => !string.IsNullOrWhiteSpace(_baseUrl)
|
get => AcEnv.BaseUrl;
|
||||||
? _baseUrl
|
set => AcEnv.BaseUrl = value;
|
||||||
: throw new InvalidOperationException("FruitBankConstClient.BaseUrl nincs beállítva — a host indulásakor hidratáld az appsettings 'AyCode:Urls:BaseUrl' értékéből (Program.cs / MauiProgram.cs).");
|
|
||||||
|
|
||||||
set => _baseUrl = value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// A szerver-környezet (PROD/DEV) — az érték KIZÁRÓLAG a szerver IsProdEnvironment() válaszából jöhet
|
// A szerver-környezet (PROD/DEV) — az érték KIZÁRÓLAG a szerver IsProdEnvironment() válaszából jöhet
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||||
|
|
||||||
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik.
|
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
|
||||||
// A loggerHub writer a FruitBankConstClient.BaseUrl-t olvassa, ezért induláskor onnan hidratáljuk.
|
// (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
|
||||||
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
||||||
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@ using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
var builder = WebApplication.CreateBuilder(args);
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik.
|
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
|
||||||
|
// (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
|
||||||
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
||||||
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@ namespace FruitBankHybrid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is az AyCode:Urls:BaseUrl-ből származik.
|
// Hub-URL-ek EGY forrásból: az fbHub és a loggerHub is a BaseUrl-ből származik
|
||||||
|
// (a FruitBankConstClient.BaseUrl az AcEnv.BaseUrl keret-állapotra delegál — fail-fast).
|
||||||
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
FruitBankConstClient.BaseUrl = builder.Configuration["AyCode:Urls:BaseUrl"]
|
||||||
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
?? throw new InvalidOperationException("Hiányzik az 'AyCode:Urls:BaseUrl' az appsettings-ből — a hub-ok URL-je ebből származik.");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue