Skip to content

Sprint 9 solution http api#5

Merged
CrodiYa merged 22 commits intomainfrom
sprint_9-solution-http-api
Sep 24, 2025
Merged

Sprint 9 solution http api#5
CrodiYa merged 22 commits intomainfrom
sprint_9-solution-http-api

Conversation

@CrodiYa
Copy link
Owner

@CrodiYa CrodiYa commented Sep 24, 2025

Изменения, связанные со старым кодом:

  • TaskManager Добавлены метода для получения задач без сохранения истории, метод для удаления подзадач из эпика
  • InMemoryTaskManager методы обновления задач получили поддержку новых полей, проверку на существование и пересечение времени
  • enum`ы перенесены в пакет enums

Изменения, связанные с добавлением нового функционала

  • исключение TaskNotFound
  • enum Endpoints для http запросов
  • record RequestSegments - помощник для парсинга метода и сегментов пути запроса
  • класс ErrorResponse - обертка для возврата json в случае ошибки
  • класс JsonBuilder - помощник для создания json
  • классы DurationAdapter и LocalDateTimeAdapter - адаптеры для gson
  • класс HttpTaskServer - основной сервер для работы с менеджерами задач
  • обработчики запросов для HttpTaskServer
  • добавлена тесты, документация и обновлен README

Информация об API

  • Api поддерживает методы HEAD, GET, POST, DELETE, OPTIONS - на все остальные методы возвращается 405
  • В случае несуществующего пути или попытки найти задачу с несуществующим айди - 404
  • В случае неверного формата JSON, неверного формата времени, или id, являющегося не положительным числом - 400
  • В случае пересечения времени - 406
  • В случае успеха - 200 (201, если успешное создание/обновление)
  • В случае ошибки на стороне сервера - 500

Более подробная информация об API и формате json записана в README

@CrodiYa CrodiYa merged commit 7cf0c27 into main Sep 24, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant