Вступительное задание для бэкенд-специалиста на курс по JS-разработке от Т-Банк Финтеха.
Note
Вступительное задание выполнялось с базовыми знаниями синтаксиса JS на начальном этапе на протяжении 4-х дней. Тем не менее, по результатам проверки я успешно прошёл отбор и был зачислен на курс. ✅
Продумать и разработать структуру API для кеширования данных на серверной части, а также контроля над кешем. Выбрать API из данного списка: Public APIs. Реализовать in-memory кеш, который позволит приложению при запросе к API сначала проверить, имеются ли данные в кеше, и выполнять запрос только в том случае, если данные в кеше отсутствуют. Также реализовать методы очистки кеша и изменения размера кеша.
- Работоспособность приложения и корректное выполнение всех требуемых функций кеша:
- проверка наличия данных;
- добавление новых данных;
- обновление данных;
- очистка кеша;
- изменение размера кеша.
- Документация API с использованием Swagger: полнота и ясность описания всех маршрутов и параметров.
- Построение архитектуры проекта с делением его на слои.
- Использовать один из инструментов для проверки качества кода (ESLint, Prettier и т. д.).
- Для реализации выбран OMDb API, который позволяет получать информацию с портала IMDb
- Поддерживаются все возможности донорского API и требуемые методы работы с кешем
- Запросы к донорскому API кешируются до тех пор, пока кеш не достигнет заданного максимального размера
- Два запроса с разным порядком параметров распознаются и кешируются как одинаковые (если значения параметров равны)
- Задокументирован не только разрабатываемый API, но и донорский для корректного тестирования запросов
- GET / — перенаправление на данную страницу
- GET /docs — документация в Swagger UI
- GET /api:
- без параметров — перенаправление на /docs
- с параметрами — передача параметров в запрос к донорскому API
- PUT /api — обновление данного запроса в кеше
- DELETE /api — удаление данного запроса из кеша
- GET /cache — получение кешированных запросов
- GET /cache/maxsize — получение максимального размера кеша
- PUT /cache/maxsize — установка максимального размера кеша
- DELETE /cache/clear-all — полная очистка кеша
- Node.js — программная платформа
- Express — фреймворк для бэкенда
- apicache — библиотека для in-memory кеширования ответов API
- Swagger UI Express — документация к API
- Установите зависимости в директории клонированного репозитория:
npm install
- Получите ключ API на сайте OMDb API или возьмите мой:
18eaeb4f
(для тестирования работы кеша это не обязательно). - Запустите сервер:
npm start
- Для тестирования API в Swagger UI перейдите на страницу https://localhost:3030/docs.