Revize 93522063
Přidáno uživatelem Lukáš Vlček před více než 2 roky(ů)
Backend/README.md | ||
---|---|---|
1 | 1 |
# Backend |
2 | 2 |
|
3 |
Backend je implementován v ASP.NET. Jako databáze se používá PostgreSQL. |
|
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. |
|
4 | 5 |
|
5 | 6 |
## RestAPI |
6 | 7 |
|
7 |
Projekt RestAPI obsahuje <code>Program.cs</code> a kontrolery pro endpointy. Zároveň obsahuje middleware pro JWT a globální error-handling. |
|
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í) |
|
8 | 11 |
|
9 | 12 |
## Models |
10 | 13 |
|
... | ... | |
12 | 15 |
|
13 | 16 |
## Core |
14 | 17 |
|
15 |
Projekt Core obsahuje služby (<code>Services</code>), ve kterých je implementována podstatná funkcionalita. Zároveň obsahuje definici databáze (<code>Contexts</code>, <code>Entities</code>). |
|
16 |
Pro mapování entit na DTO lze využít AutoMapper (<code>MapperProfiles</code>) - ušetří to dost práce a je to celkem chytrý. |
|
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. |
Také k dispozici: Unified diff
Backend README.md updated