Dostupné
FastAPI skeleton
Kostra dělá tři věci: řekne, že běží, řekne, jaká je to verze, a servíruje vygenerovaný web z jednoho originu. Doménová data v ní zatím nejsou žádná.
- Umístění
src/progresus_isir/api/- Endpointy
/health(liveness) a/version(build a stav nasazení)- Chyby
application/problem+jsonpodle RFC 9457- Veřejné routy
- 64: 8 v
PUBLIC_ROUTESa 56 vDETAIL_PAGES, plus/sitemap.xmla/robots.txt - Stav
- čtecí API nad řízeními, pohledávkami a věřiteli je plánované (fáze 1)
Tabulka rout je kontrakt
Stránky se nemountují jako adresář. Každá routa je vyjmenovaná, takže tabulka je kontrakt a stránka, která leží na disku, ale v tabulce není, není tiše dostupná.
Že se tabulka shoduje se seznamem stránek v buildu, ověřuje e2e sada. Stránka přidaná do buildu bez routy shodí bránu, místo aby později vracela 404.
Chyba má jeden tvar
Odpověď na chybu je vždycky problem+json s typem, titulkem, stavem a detailem. Klient nemusí rozlišovat, jestli chybu vyrobil framework, nebo aplikace.
Do budoucna to má cenu hlavně u čtecího API: chyba „nedostatečná spolehlivost, hodnota je ve frontě kontroly“ musí být strojově odlišitelná od „nenalezeno“.
Jeden origin
Web se servíruje z téže aplikace jako API, takže aplikační shell může volat /v1/… bez CORS. Statické stránky jsou přitom pořád commitnutý generovaný výstup, ne šablony renderované za běhu.
Kde to v repozitáři žije
src/progresus_isir/api/— aplikace, obálka chyb a routerysrc/progresus_isir/api/routers/web.py— explicitní tabulka veřejných routdocs/API.md— zamýšlené čtecí API a exporty
Souvisí
Statický web
DostupnéZdroje ve web_src/, generovaný a commitnutý výstup ve web/. Tailwind 4 a Flowbite, lokálně vendorované JS s ověřenými hashi, žádné CDN. Stránky dávají smysl i bez JavaScriptu.
Detail
Čtecí API
PlánovánoŘízení, pohledávky, věřitelé a fronta kontroly. Každá hodnota v odpovědi ponese dokument, stránku a skóre spolehlivosti, ze kterých vznikla.
Detail