Задача: Трябва да направите потребителски интерфейс за CRUD бекенд, като използвате HTML, CSS, JS, jQuery. Ще направим админ панел за управление на акаунти за онлайн игри.
- Форк от хранorщето: https://github.com/CodeGymCC/project-frontend.git
- Изтеглете вашата version на проекта на вашия компютър.
- Изтеглете Tomcat за себе си: https://tomcat.apache.org/download-90.cgi .важно: Tomcat се нуждае от version 9 , а не от 10.
- Конфигурирайте стартирането на приложение чрез Idea: Alt + Shift + F9 -> Редактиране на конфигурации… -> Alt + вмъкване -> tom (в лентата за търсене) -> Local.
- След това трябва да щракнете
CONFIGURE
и да посочите къде е изтеглен и разопакован архивът с Tomcat. - В раздела
Deployment
: Alt + вмъкване -> Артефакт… -> rpg:war exploded -> OK. - В полето
Application context
: оставете само/
(наклонена черта). - Натиснете
APPLY
. - Затворете прозореца с настройки.
- Стартирайте приложението. За да направите това: Alt + Shift + F9 -> (име на конфигурацията, нарекох го „Приложение“) -> Изпълнение.
- След внедряване на приложението ще се отвори нов раздел в браузъра, избран по време на конфигурацията. Страхотно, сървърът е конфигуриран, тогава трябва да работите с два file:
<project_dir>/src/main/webapp/html/my.html
- ще има маркиране и скриптове.<project_dir>/src/main/webapp/css/my.css
– тук ще има стилове. Всичко за стиловете зависи от вас, няма изисквания за тях.- В маркирането ( my.html ) добавете table (не забравяйте да й дадете id), в която да посочите имената на колоните:
- #
- Име
- Заглавие
- състезание
- професия
- Ниво
- рожден ден
- Забранен
- Добавете таг за двойка
<script>
- тук ще пишем функции. - Първата функция трябва да изпрати GET заявка към URL
"/rest/players"
- вземете списъка. Резултатът трябва да се добави към tableта от параграф 7 (тук е полезен идентификаторът на tableта). Ако сте направor всичко правилно, след рестартиране на сървъра на вашата page ще се покаже table с 4 реда. В първия ред - имената на колоните, в останалите - данните, дошли от сървъра. - Сега е желателно да добавите граници на клетки към tableта, в противен случай информацията обикновено е нечетлива.
- Сега да преминем към страниране. За целта са ви необходими:
- Под tableта добавете секция, например,
<div>
в която ще има бутони за страниране. - Добавете функция, която ще изпрати GET заявка до сървъра, която връща общия брой акаунти на сървъра. URL:
"/rest/players/count"
. - Добавете падащ списък за 3-4 числови стойности, колко акаунта да се показват наведнъж. Числата трябва да са между 3 и 20 включително.
- В метода за показване на списъка с акаунти (стр. 9) ще добавим изчисляването на броя страници, които са необходими за даден брой акаунти на page, така че да можете да видите всички акаунти.
- Във функцията за показване на списъка с акаунти добавете параметър, който ще отговаря за номера на pageта, която ще се показва. Коригирайте URL address, така че да предава „pageNumber“ и „pageSize“ като параметри на заявката . Сега, когато променяте броя на page в падащия списък, трябва да се покаже заявеният брой акаунти:
- Сега нека оцветим номера на текущата page, в противен случай е неудобно ...
- Нека добавим още 2 колони към tableта: Редактиране и Изтриване. За всеки ред нека добавим икони, които ще отговарят за редактирането и изтриването на всеки запис. Можете да използвате or снимките, които са в
<project_dir>/src/main/webapp/img/
, or да използвате ваши собствени. - Напишете функция, която ще отговаря за изтриването на акаунт. За да направите това, изпратете заявка за ИЗТРИВАНЕ до сървъра на URL address
"/rest/players/{id}"
. Когато щракнете върху изображението на количката, извикайте тази функция. След обаждането - не забравяйте да актуализирате списъка с акаунти на текущата page. - Преди да изтриете акаунт с id=23
- След изтриване на акаунт с id=23 . Обърнете внимание, не са натиснати бутони, освен кошницата.
- Сега напишете функция, която отговаря за редактирането на акаунт. Когато щракнете върху него, нека скрием бутона „Изтриване“ и сменим изображението на бутона „Редактиране“ на „Запазване“.
- Сега нека добавим функционалност за редактиране на акаунт. Като щракнете върху бутона „Редактиране“, освен да промените картината, трябва да направите полетата редактируеми:
- Име
- Заглавие
- състезание
- професия
- Забранен
- Сега ще изпратим промените, като щракнете върху бутона „Запазване“. За да направите това, трябва да изпратите POST заявка до URL address
“/rest/players/{id}”
и да предадете стойностите на всичките пет полета като тяло на заявката, което може да бъде променено под формата на JSON. Използвайте JSON.stringify({...}); След промяната не забравяйте да презаредите данните на текущата page. - Така че всичко трябва да се направи от CRUD в момента, с изключение на „C“ (Създаване). След бутоните за пейджинг добавете хоризонтална линия и текст, че можете да създадете нов акаунт тук. Освен това добавете блокове от текст и полета за въвеждане на параметри на акаунта:
- Име - текст, от 1 до 12 знака.
- Заглавие - текст, от 1 до 30 знака.
- Състезание - падащ списък, вижте API за валидни стойности.
- Професия - падащ списък, вижте API за валидни стойности.
- Нивото е число от 0 до 100.
- Рожден ден - дата (<input type="date" ...).
- Banned е булева стойност.
- Сега добавете бутон, при натискане на който всички въведени данни ще бъдат изпратени на сървъра. Използвайте POST заявка към URL address
/rest/players
. След отговора на сървъра не забравяйте да изчистите полетата за въвеждане на данни и да поискате повторно списъка с акаунти на текущата page. - Сега можете да добавите "красота" чрез стилове - всичко тук зависи от вас. Получих го така:
Моля, имайте предвид, че стойността в полетата за редактиране трябва да бъде тази, която е в акаунта.
Полезно: API на сървъра:
Вземете списък с играчи
URL address | /почивка/играчи |
метод | По избор: Цяло число pageNumber, Integer pageSize |
Параметри на данни | Нито един |
Успешен отговор |
|
бележки |
pageNumber - параметър, който отговаря за номера на показаната page при използване на страниране. Номерацията започва от нула. pageSize - параметър, който отговаря за броя на резултатите на една page при страниране
|
Вземете брой играчи
URL address | /почивка/играчи/брой |
метод | ВЗЕМЕТЕ |
URL параметри | Нито един |
Параметри на данни | Нито един |
Успешен отговор |
Код : 200 OK Съдържание : Цяло число |
бележки |
Изтриване на играч
URL address | /rest/players/{id} |
метод | ИЗТРИЙ |
URL параметри | document за самоличност |
Параметри на данни | Нито един |
Успешен отговор | Код : 200 OK |
бележки |
Ако играчът не бъде намерен, отговорът е грешка с codeа 404. Ако стойността на id не е валидна, отговорът ще бъде грешка с code 400. |
Актуализирайте плейъра
URL address | /rest/players/{id} |
метод | ПУБЛИКУВАНЕ |
URL параметри | document за самоличност |
Параметри на данни |
|
Успешен отговор |
|
бележки |
Актуализират се само полета, които не са null. Ако играчът не е намерен в базата данни, отговорът е грешка с codeа 404. Ако стойността на id не е валидна, отговорът е грешка с code 400. |
Създаване на играч
URL address | /почивка/играчи |
метод | ПУБЛИКУВАНЕ |
URL параметри | Нито един |
Параметри на данни |
|
Успешен отговор |
|
бележки |
Не можем да създадем играч, ако:
Във всички случаи по-горе отговорът е грешка с code 400. |
Анализ на проекта . Гледайте след завършване!
GO TO FULL VERSION