Skip to content

🎲 JobApplication - A WEB API for Client Desktop & Mobile

Notifications You must be signed in to change notification settings

Rievaii/TicTacToeWEB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WEB API ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ

БСрвис для ΠΈΠ³Ρ€Ρ‹ Π² крСстики Π½ΠΎΠ»ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ASP.NET с использованиСм Entity Framework.

БСрвис ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ использованиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ API для отслСТивания состояния ΠΈΠ³Ρ€Ρ‹ Π² крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ HTTP запросов ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ Π»ΠΎΠ±Π±ΠΈ с объявлСниСм ID ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄Ρ‹ Π½Π° классичСском 3x3 ΠΏΠΎΠ»Π΅.

Для отслСТивания состояний ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π‘Π” SQLite, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Entity Framework

Untitled Diagram

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ
X Для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°
O Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°
ПолС 3Ρ…3
ΠšΠ»Π΅Ρ‚ΠΊΠΈ ΠΎΡ‚ 0 Π΄ΠΎ 8

Условия ΠΏΠΎΠ±Π΅Π΄Ρ‹ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ

ИспользованиС

ПолС прСдставляСт ΠΈΠ· сСбя 3Ρ…3 ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, значСния Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½Ρ‹:

0 1 2 
3 4 5
6 7 8

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ HTTP запросы ΠΊΠ°ΠΊ:

  • HTTP POST - Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. Π˜Π³Ρ€Π° создаСтся автоматичСски с пустым ΠΏΠΎΠ»Π΅ΠΌ Field, Π½ΡƒΠΆΠ½ΠΎ лишь Π·Π°Π΄Π°Ρ‚ΡŒ значСния id ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΠΈ сколько ΠΈΠ³Ρ€ ΠΎΠ½ сыграл (для большой систСмы).
curl -X 'POST' \
 'https://localhost:7138/api/Sessions/api/StartGame?player1Id=1341511&player2Id=5122242' \

  • HTTP PATCH - ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅. Если сСйчас Π½Π° ΠΏΠΎΠ»Π΅ Ρ…ΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ X ΠΈΠ»ΠΈ O Π² зависимости ΠΎΡ‚ id ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² этой ΠΈΠ³Ρ€Π΅.
curl -X 'PATCH' \
'https://localhost:7138/api/Sessions/api/MakeMove?_SessionId=2&_PlayerId=1341511&_Cell=2' \

  • HTTP GET - ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ поля, привязанного ΠΊ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ³Ρ€Π΅. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс ΠΈΠ³Ρ€Ρ‹ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡ‚Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ http запрос. И послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° сопСрника ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ экзСмляром ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° поля, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этом ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ UI значСния.
curl -X 'GET' \
 'https://localhost:7138/api/Sessions?_SessionId=2' \

ISSUES: Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ мСня Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² DI Π½ΠΎΠ²Ρ‹ΠΉ DBcontext, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ FieldHandler, поэтому нСкоторая Ρ‡Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° находится нСпосрСдствСнно Π² [NotMapped] ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Π° присваваниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ происходит Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

TEMP:

  • ΠŸΠ΅Ρ€Π΅Π΄ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ensure Deleted, ΠΎΠ½Π° удаляСт Π‘Π” ΠΈ создаСт Π·Π°Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅Π»ΡŒΠ½ΠΎ для тСстирования.
  • Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строку ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π‘Π”, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π² Ρ„Π°ΠΉΠ» с настройками ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

TODO:

  • UI рСализация (Desktop)
  • Refactor ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΊΠ»Π΅Ρ‚ΠΎΠΊ
  • AUTO Move
  • Unit tests

About

🎲 JobApplication - A WEB API for Client Desktop & Mobile

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published