Skip to content

Problems

Trayan Iliev edited this page Apr 24, 2019 · 7 revisions

Table of Contents

Problems

Задачите трябва да бъдат демонстрирани пред преподавателя по време на упражнения. За отлична оценка на задачата е необходимо да съберете поне 60 точки.

ВАЖНО: Всички решения трябва да са изцяло авторски. Сходните решения на задачите се анулират!

Задача 1: REST API for Course Projects Management

(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, разделени със запетайки (незадължително);
  • статус - предложен (по подразбиране) или одобрен.
Реализацията трябва да бъде съобразена с препоръките и изискванията на REST архитектурния стил и HTTP стандарта на W3C, както и препоръките за реализация на REST ресурси, разгледано по-време на лекции, и следва да включва:
  1. Реализирайте 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 точки)
  2. POST заявките към /api/projects следва да създават ново записване на проект с валидиране на подадените данни като структура и съдържание, както е описано по-горе. (5 точки)
  3. Новосъздадените записи следва да бъдат запазени в MongoDB база с име projects, в колекция projects. При неуспешен запис на данните следва да се върне подходящ HTTP статус код и информация за грешката в JSON формат. (10 точки)
  4. Реализирайте individual level resource: /api/projects/:projectId, към който отиват read (GET), update (PUT) и delete (DELETE) заявките. (15 точки),
  5. Заявките към /api/projects/:projectId следва да бъдат валидирани като структура и съдържание, както е описано по-горе. (5 точки)
  6. Променените/изтрити записи следва да се актуализират в MongoDB колекцията projects. (10 точки)
  7. Не забравяйте да върнете подходящ статус код при възникване на грешка към уеб клиента, в зависимост от вида на грешката (4XX или 5XX). (10 точки)
Максимален брой точки: 70.
Clone this wiki locally