-
Notifications
You must be signed in to change notification settings - Fork 15
Problems
Trayan Iliev edited this page Apr 24, 2019
·
7 revisions
Задачите трябва да бъдат демонстрирани пред преподавателя по време на упражнения. За отлична оценка на задачата е необходимо да съберете поне 60 точки.
ВАЖНО: Всички решения трябва да са изцяло авторски. Сходните решения на задачите се анулират!
(5% от крайната оценка)
Да се реализира с Node.js (евентуално + Express.js) уеб услуга в стил Representational State Transfer (REST API). Реализираната REST API уеб услуга следва да предлага Create-Read-Update-Delete (CRUD) функционалност за управление на записването на курсови проекти за курса Node-Express-React. Всяко записване на курсов проект включва следната информация (с валидация на данните):
- идентификатор на записа (MongoDB ObjectID - 24 символа);
- дата на записване;
- псевдоними на авторите, разделени със запетайки;
- име на проекта;
- URL на GitHub repository на проекта (валиден URL);
- кратко описание ;
- ключови думи - tags, разделени със запетайки (незадължително);
- статус - предложен (по подразбиране) или одобрен.
- Реализирайте collection level resource: /api/projects, към който отиват collection GET (GET all projects) и POST заявките. В отоговор на POST заявка следва REST endpoint-a да върне HTTP статус: 201 Created с header Location, който да връща individual level resource URI на новосъздадения ресурс - напр: /api/projects/5cb7510d69168b597c9206d8, ако новият ресурс има ID=5cb7510d69168b597c9206d8. (15 точки)
- POST заявките към /api/projects следва да създават ново записване на проект с валидиране на подадените данни като структура и съдържание, както е описано по-горе. (5 точки)
- Новосъздадените записи следва да бъдат запазени в MongoDB база с име projects, в колекция projects. При неуспешен запис на данните следва да се върне подходящ HTTP статус код и информация за грешката в JSON формат. (10 точки)
- Реализирайте individual level resource: /api/projects/:projectId, към който отиват read (GET), update (PUT) и delete (DELETE) заявките. (15 точки),
- Заявките към /api/projects/:projectId следва да бъдат валидирани като структура и съдържание, както е описано по-горе. (5 точки)
- Променените/изтрити записи следва да се актуализират в MongoDB колекцията projects. (10 точки)
- Не забравяйте да върнете подходящ статус код при възникване на грешка към уеб клиента, в зависимост от вида на грешката (4XX или 5XX). (10 точки)