Проект RESTAPI-сервера, написан с использованием готовой вебсерверной библиотеки Fiber. Сервер предоставляет всего два Хэндлера.
- POST /edit/ изменение новости по заданному идентификатору. Измененять можно не только поля Title, Content и Category, но и сам уникальный идентификатор, допустим, команде фронтенда может потребовать менять порядок.
- *GET /list - получение списка всех новостей. Каждая новость представлена полями Id, Title, Content и списком депенсов с категориями.
Для хранения данных выбрана привычная MySQL. Имеются всего две таблицы:
- News - содержит информацию о новостях.
- NewsCategories - таблица связи новостей и категорий. Вид связи: Многое ко многому
В задании небыло разрешено использовать дополнительные ресурсы, а также указано использовать только определённые таблицы, то было принято решение в пользу Basic Auth. Обработка должна выполняться на уровне Middleware.
docker-compose.yaml
иDOCKERFILE
- Файлы упаковки проекта, а также создания необходимого окружения*.http
-текстовые файлы с указанием конфигураций запросов (Goland может их запускать). Там имеются описания запросов и заголовок авторизации. Для вывода списка, указаны get-параметры
Запуск проекта должен производиться на компьютере:
- На уровне БИОС должна быть включена модуль визуализации.
- На устройствах с ОС Windows должен быть установлен компонент WSL.
- Обязательно установлен 🐳Docker
Для запуска вебприложения требуется ввести команду docker compose up
Так как проект тестовый и писался после основной работы, то многие фрагменты были упрощены в угоду времени, по типу простой авторизации, отсутсвия кеширования, малого количества мидлвеиров, Сваггера, префиксов таблиц, миграций, валидации данных (представлена в виде результата Анмаршалинга в структуру)