Projekt

Obecné

Profil

Stáhnout (1.93 KB) Statistiky
| Větev: | Tag: | Revize:
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.
(2-2/2)