Skip to the content.

Технологии программирования

Назад к списку лекций

ДЗ 10. Простое веб-приложение “Заметки”

Дедлайн

Как сдать?

В данный момент еще нет тестов и репозитория на данную домашку. Поэтому создайте пустой gradle-проект и выполните в нем задания. Когда появится репозиторий с тестами - нужно будет перенести в него свое решение. Или будет нужно показать его на практике

Веб-приложение “Заметки”

Вам необходимо разработать rest-api бэкенда для приложения Заметки. Вам необходимо релизовать следующее api:

1. get /api/note

Код ответа - 200. Возвращает все заметки (в теле ответа), которые были ранее сохранены на сервере в формате:

{
  "notes": [
//    далее список заметок:
    {
      "id": 1,
      "title": "Note title",
      "content": "Note content",
      "created_at": "28.03.2023"
    },
    ...
  ]
}

2. get /api/note/{id}

где вместо {id} - подставляет id интересуемой нас заметки.

Код ответа - 200. Возвращает заметку с переданным id в теле ответа в следующем формате:

{
  "id": 1,
  "title": "Note title",
  "content": "Note content",
  "created_at": "28.03.2023"
}

Если заметка с переданным id не найдена - верните 404 c сообщением “Note not found”

Комментарий: Как URI для сервлета укажите api/note/* , в самом сервлете посмотрите на метод request.getPathInfo()

3. post /api/note

Создает новую заметку. В теле запроса передает следующий json файл:

{
  "title": "Note title",
  "content": "Note content"
}

Код ответа - 201. В ответе получает уже знакомый нам ответ:

{
  "id": 1,
  "title": "Note title",
  "content": "Note content",
  "created_at": "28.03.2023"
}

4. delete /api/note/{id}

Удаляет заметку с переданным id. Код ответа - 200

Комментарий об архитектуре приложения

Мы договорились с Вами, что в этом приложении необязательно подключаться в бд. Однако это не отменяет необходимость использования трехслойной архитектуры приложения в этой домашке. Создайте классы для каждого из слоев, распределите их по нужным пакетам

Дополнительная часть

Подумайте о том, как реализовать аутентификацию пользователей, а также как дополнить функционал из основной домашки так, чтобы пользователю показывались только те заметки, которые он написал.

Контракт по ручкам доп. части напишу чуть позже.