1
|
# Backend
|
2
|
|
3
|
Backend je implementován v ASP.NET (.NET 6). Pro perzistentní ukládání dat je použit ORM framework <code>Entity Framework</code>. Ve výchozím nastavení se používá databáze PostgreSQL.
|
4
|
Případná změna použitého databázového serveru by znamenala instalaci patřičného NuGet balíčku pro EntityFramework, upravení připojovacího scriptu a vygenerování nového migrace.
|
5
|
|
6
|
## RestAPI
|
7
|
|
8
|
Projekt RestAPI se stará o obsluhu REST API. Obsahuje <code>Program.cs</code>, ve kterém jsou definovány DI a globální nastavení (např. validace JWT).
|
9
|
O zpracování žádosti (HTTP Request) se starají kontrolery (ve složce <code>Controllers</code>), ve kterých se pro větší přehlednost používá fixní mapování cest.
|
10
|
V RestAPI se také nachází Middleware pro Error handling (automatický překlad vyhozených výjimek na patřičný HTTP Status code) a JWT Middleware (zajišťuje validaci zaslané autentizace a přidání informací o přihlášeném uživateli do HttpContextu pro další zpracování)
|
11
|
|
12
|
## Models
|
13
|
|
14
|
Projekt Models obsahuje data-transfer-objekty, které se využívají pro komunikaci frontend <-> rest-api a rest-api <-> services.
|
15
|
|
16
|
## Core
|
17
|
|
18
|
Projekt Core obsahuje služby (<code>Services</code>), ve kterých je implementována veškerá podstatná funkcionalita. Zároveň obsahuje definici databáze (<code>Contexts</code>, <code>Entities</code>).
|
19
|
Pro mapování entit na DTO lze využít AutoMapper (<code>MapperProfiles</code>), který ušetří programátorům spoustu rutinní práce.
|
20
|
|
21
|
|
22
|
# Nastavení
|
23
|
Klíčová nastavení projektu projektu se nacházejí v souboru <code>appsettings.json</code>.
|
24
|
Je připravena verze pro ostré nasazení - <code>appsettings.json</code> a verze pro vývoj - <code>appsettings.Development.json</code>.
|
25
|
|
26
|
Rozdíl mezi těmito verzemi je v ConnectionString, tedy řetězci pro připojení do databáze.
|
27
|
Očekává se, že ConnectionString bude v produkční verzi přidán do ENV.
|