Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/maxkorop/restowaves-test-task


https://github.com/maxkorop/restowaves-test-task

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

API, в якому можна отримати дані про товар (модель, назва, ціна, артикул та доступні розміри).

Посилання на API завантажене на Render, для перевірки його роботи:
https://test-task-a8ub.onrender.com/api

API Endpoints:

**@GET /api** - Повертає всі товари доступні в БД

**@GET /api?sizes={size}** - Повертає усі товари які доступні у певному розмірі __size__

**@GET /api/{id}** - Повертає товар за заданим артикулом __id__

**@PUT /api** - Змінює назву товару та повертає товар з оновленою назвою

Щогодини сервер відправляє запит до таблиці, формує дані про модель (товари цієї моделі), та відправляє на контролер для валідації отриманих даних, та збереження їх у БД (якщо нові товари) або оновлює товар (якщо змінились дані про нього).

Дані про товар виглядають наступним чином:

{
modelName: String,
name: String,
price: Number,
article: Number,
sizes: Array
}

Використана БД (PostgreSQL) запускається на сервісі ElephantSQL.

Використані технології: Express.js, Sequelize, Axios, node-cron, dotenv

Використав Sequelize, тому що це зручна ORM для Node.js. За допомогою неї можна легко створити таблицю, створити модель, яка може додавати, видаляти та оновлювати рядки в БД.

Axios - бібліотека, використана для створення запитів до таблиці, була обрана через простоту її використання.

node-cron була використана для планування запитів до таблиці, обрана, тому що є простою у використанні, та для планування задачі використовується поста форма.

dotenv використана для конфігурування доступу сервера до змінних оточення (наприклад рядок підключення до БД, ключ API, порт на якому запускається сервер, ...)