This commit is contained in:
JiriUhlir
2026-09-03 10:52:54 +02:00
parent a922117b3d
commit a70e9f9864
5 changed files with 30 additions and 27 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ def _list(name: str) -> list[str]:
@dataclass(frozen=True) @dataclass(frozen=True)
class Settings: class Settings:
app_name: str = field(default_factory=lambda: os.getenv("APP_NAME", "html-to-pdf")) app_name: str = field(default_factory=lambda: os.getenv("APP_NAME", "html-to-pdf"))
app_version: str = field(default_factory=lambda: os.getenv("APP_VERSION", "1.0.1")) app_version: str = field(default_factory=lambda: os.getenv("APP_VERSION", "1.0.2"))
root_path: str = field( root_path: str = field(
default_factory=lambda: os.getenv("ROOT_PATH") or os.getenv("BASE_PATH") or "" default_factory=lambda: os.getenv("ROOT_PATH") or os.getenv("BASE_PATH") or ""
) )
+14 -24
View File
@@ -66,7 +66,7 @@ class PageSettings(BaseModel):
"orientaci poradi hodnot." "orientaci poradi hodnot."
), ),
) )
margin: Margin = Field(default_factory=Margin, description="Okraje stranky.") margin: Margin = Field(default_factory=Margin)
class PageNumbers(BaseModel): class PageNumbers(BaseModel):
@@ -197,9 +197,12 @@ class ConvertRequest(BaseModel):
"""Telo pozadavku. Stejne pro POST /convert i POST /jobs. """Telo pozadavku. Stejne pro POST /convert i POST /jobs.
Povinne je pouze `source`, vsechno ostatni ma pouzitelnou vychozi hodnotu. Povinne je pouze `source`, vsechno ostatni ma pouzitelnou vychozi hodnotu.
Nastaveni tykajici se strankovani je rozdelene do ctyr bloku: `page` resi
rozmer a okraje, `page_numbers` cislovani, `chunking` deleni velkeho Strankovani je rozdelene do ctyr bloku. `page` resi rozmer stranky a okraje,
dokumentu na renderovane casti a `toc` obsah s cisly stranek. `page_numbers` cislovani, `chunking` deleni velkeho dokumentu na renderovane
casti a `toc` obsah se skutecnymi cisly stranek. `assets` ridi stahovani
externich obrazku a stylu, `wait_for` cekani na dokresleni stranky
a pouziva ho jen Chromium.
""" """
source: Source source: Source
@@ -213,27 +216,14 @@ class ConvertRequest(BaseModel):
"weasyprint, a pri selhani WeasyPrintu render zopakuje pres Chromium." "weasyprint, a pri selhani WeasyPrintu render zopakuje pres Chromium."
), ),
) )
page: PageSettings = Field( page: PageSettings = Field(default_factory=PageSettings)
default_factory=PageSettings, description="Rozmer stranky a okraje." page_numbers: PageNumbers = Field(default_factory=PageNumbers)
) toc: TocSettings = Field(default_factory=TocSettings)
page_numbers: PageNumbers = Field(
default_factory=PageNumbers, description="Cislovani stranek, vychozi je vypnute."
)
toc: TocSettings = Field(
default_factory=TocSettings, description="Obsah se skutecnymi cisly stranek."
)
outline: bool = Field(default=True, description="Generovat zalozky PDF z nadpisu h1 az h6.") outline: bool = Field(default=True, description="Generovat zalozky PDF z nadpisu h1 az h6.")
pdf_profile: Literal["pdf/a-1b", "pdf/a-2b", "pdf/a-3b", "pdf/a-4b", "pdf/ua-1"] | None = None pdf_profile: Literal["pdf/a-1b", "pdf/a-2b", "pdf/a-3b", "pdf/a-4b", "pdf/ua-1"] | None = None
assets: AssetSettings = Field( assets: AssetSettings = Field(default_factory=AssetSettings)
default_factory=AssetSettings, description="Stahovani externich assetu." chunking: ChunkSettings = Field(default_factory=ChunkSettings)
) wait_for: WaitFor = Field(default_factory=WaitFor)
chunking: ChunkSettings = Field(
default_factory=ChunkSettings,
description="Deleni velkeho dokumentu na casti renderovane samostatne.",
)
wait_for: WaitFor = Field(
default_factory=WaitFor, description="Cekani na dokresleni stranky, jen pro Chromium."
)
filename: str | None = Field(default=None, description="Nazev souboru ve Content-Disposition.") filename: str | None = Field(default=None, description="Nazev souboru ve Content-Disposition.")
callback_url: str | None = Field( callback_url: str | None = Field(
default=None, default=None,
@@ -322,7 +312,7 @@ class JobState(BaseModel):
"smazou a dalsi dotaz vraci 404. Odvozuje se z JOB_RESULT_TTL_SECONDS." "smazou a dalsi dotaz vraci 404. Odvozuje se z JOB_RESULT_TTL_SECONDS."
), ),
) )
progress: JobProgress = Field(default_factory=JobProgress, description="Postup renderu.") progress: JobProgress = Field(default_factory=JobProgress)
engine_used: str | None = Field(default=None, description="Engine, ktery dokument vyrenderoval.") engine_used: str | None = Field(default=None, description="Engine, ktery dokument vyrenderoval.")
page_count: int | None = Field(default=None, description="Pocet stranek vysledku.") page_count: int | None = Field(default=None, description="Pocet stranek vysledku.")
missing_assets: list[MissingAsset] = Field( missing_assets: list[MissingAsset] = Field(
+1 -1
View File
@@ -13,7 +13,7 @@ v tele requestu a vrati soubor PDF. Zvlada dokumenty o tisicich stranek.
## Aktualni stav ## Aktualni stav
Verze 1.0.1, stav development. Verze 1.0.2, stav development.
Hotovo: Hotovo:
+1 -1
View File
@@ -8,7 +8,7 @@ runtime `.env`. Zadna promenna neni povinna, sluzba nastartuje i bez nich.
| Promenna | Vychozi | Vyznam | | Promenna | Vychozi | Vyznam |
|---|---|---| |---|---|---|
| `APP_NAME` | `html-to-pdf` | nazev v dokumentaci a v odpovedi /version | | `APP_NAME` | `html-to-pdf` | nazev v dokumentaci a v odpovedi /version |
| `APP_VERSION` | `1.0.1` | verze | | `APP_VERSION` | `1.0.2` | verze |
| `ROOT_PATH` | prazdne | prefix reverse proxy, napriklad `/apps/html-to-pdf` | | `ROOT_PATH` | prazdne | prefix reverse proxy, napriklad `/apps/html-to-pdf` |
| `BASE_PATH` | prazdne | pouzije se, kdyz `ROOT_PATH` neni nastavene | | `BASE_PATH` | prazdne | pouzije se, kdyz `ROOT_PATH` neni nastavene |
| `LOG_LEVEL` | `INFO` | uroven logovani | | `LOG_LEVEL` | `INFO` | uroven logovani |
+13
View File
@@ -1,5 +1,18 @@
# Zaznam zmen # Zaznam zmen
## 1.0.2
Opraveno:
- Swagger UI se u tela requestu rozbil. Verze 1.0.1 pridala popis k polim
`page`, `page_numbers`, `toc`, `assets`, `chunking`, `wait_for`, `margin`
a `progress`, coz jsou odkazy na vnorene modely. V OpenAPI z toho vznikl
`$ref` se sourozeneckym klicem `description`. To je podle OpenAPI 3.1
v poradku, ale Swagger UI 5 takovy uzel nerozbali, takze prestala fungovat
ukazka tela requestu i Try it out. Popisy se presunuly do docstringu
prislusnych modelu, kde je Swagger zobrazi u samotneho modelu. V OpenAPI uz
neni zadny `$ref` se sourozenci.
## 1.0.1 ## 1.0.1
Opraveno: Opraveno: