diff --git a/Apis/page-fetcher-api/Program.cs b/Apis/page-fetcher-api/Program.cs index 2a97344..9ff8f48 100644 --- a/Apis/page-fetcher-api/Program.cs +++ b/Apis/page-fetcher-api/Program.cs @@ -2,6 +2,7 @@ using System.Reflection; using Microsoft.EntityFrameworkCore; using PageFetcher.Data; using PageFetcherApi.Services; +using PageFetcherApi.Settings; using Serilog; using StartupHelpers; diff --git a/Apis/page-fetcher-api/Services/PageFetcherService.cs b/Apis/page-fetcher-api/Services/PageFetcherService.cs index 7dae58b..fe452e4 100644 --- a/Apis/page-fetcher-api/Services/PageFetcherService.cs +++ b/Apis/page-fetcher-api/Services/PageFetcherService.cs @@ -6,6 +6,7 @@ using Microsoft.Playwright; using PageFetcher.Data; using PageFetcher.Data.Entities; using PageFetcher.Models; +using PageFetcherApi.Settings; namespace PageFetcherApi.Services; diff --git a/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs b/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs new file mode 100644 index 0000000..5b180fa --- /dev/null +++ b/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs @@ -0,0 +1,17 @@ +namespace PageFetcherApi.Settings; + +/// +/// Runtime settings for the page-fetcher service. +/// Bound from the PageFetcher configuration section. +/// +public sealed class PageFetcherSettings +{ + /// Default Playwright wait condition (networkidle, load, domcontentloaded). + public string DefaultWaitFor { get; set; } = "networkidle"; + + /// Page navigation timeout in seconds. + public int TimeoutSeconds { get; set; } = 30; + + /// Maximum characters stored/returned in the extracted text field. + public int MaxTextChars { get; set; } = 60_000; +}