ΠΡΠ΅ΠΎΠ±ΡΠ΅ΡΠ°Ρ Π±ΡΡΠΊΠ΅ΠΌΠΏ ΠΏΠΎ ΠΠ’ΠΠ Π‘Π‘Π«ΠΠΠ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΡΠΈΡΡΠ½ΡΡ ΡΠΊΠΈΠ΄ΠΊΡ
ΠΡΡΠΊΠ΅ΠΌΠΏ "Fullstack-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ" Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
- Frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ React.js.
- Backend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ C# Web API.
- Π Π°Π±ΠΎΡΠ° Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ SQL.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Docker Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΡΠΊΠ΅ΠΌΠΏ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠ»ΡΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΡ ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° ΠΏΠΎ ΡΡΠ»ΡΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΎΠ½ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ C#, JavaScript, Docker, SQL, React.JS, Git, HTML, CSS, Bootstrap, Markdown, LaTeX, ΠΎΡΠ½ΠΎΠ²Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
ΠΡΠ΅ΠΎΠ±ΡΠ΅ΡΠ°Ρ Π±ΡΡΠΊΠ΅ΠΌΠΏ ΠΏΠΎ ΠΠ’ΠΠ Π‘Π‘Π«ΠΠΠ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΡΠΈΡΡΠ½ΡΡ ΡΠΊΠΈΠ΄ΠΊΡ
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°: ΠΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ API
Π¦Π΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°: Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅Π± API Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
-
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°:
- ΠΠ΅ΡΠΎΠ΄: POST
- ΠΠ°ΡΡΡΡΡ: /contacts
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: JSON ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ (ΠΈΠΌΡ, Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, Π°Π΄ΡΠ΅Ρ ΠΈ Ρ.Π΄.).
-
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ²:
- ΠΠ΅ΡΠΎΠ΄: GET
- ΠΠ°ΡΡΡΡΡ: /contacts
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².
-
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ ΠΏΠΎ ID:
- ΠΠ΅ΡΠΎΠ΄: GET
- ΠΠ°ΡΡΡΡΡ: /contacts/{id}
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ID.
-
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅:
- ΠΠ΅ΡΠΎΠ΄: PUT
- ΠΠ°ΡΡΡΡΡ: /contacts/{id}
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ID.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: JSON ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅.
-
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°:
- ΠΠ΅ΡΠΎΠ΄: DELETE
- ΠΠ°ΡΡΡΡΡ: /contacts/{id}
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: Π£Π΄Π°Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ID ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.
Π’ΠΈΠΏ ΠΎΡΠ²Π΅ΡΠΎΠ²: ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ HTTP ΡΡΠ°ΡΡΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ JSON ΡΠ΅Π»ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
- ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ContactManagementController
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ CRUD Π½Π°Π΄ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌΠΈ.
- ΠΠ΅ΡΠΎΠ΄Ρ:
CreateContact
: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°.GetAllContacts
: ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².GetContactById
: ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅ ΠΏΠΎ ID.UpdateContact
: ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ΅.DeleteContact
: Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ: ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ JSON Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΡΠΈΠΌΠ΅ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
public string PhoneNumber { get; set; }
public string Email { get; set; }
// ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
// public string Address { get; set; }
}