Будівництво сучасних API за допомогою Express.js: Фреймворк для Node.js

В сучасній розробці веб-застосунків важливо будувати масштабовані та ефективні API для створення надійних додатків. Express.js, мінімалістичний і гнучкий фреймворк для веб-додатків на Node.js, є одним із найпопулярніших виборів для створення API. З Express.js ви можете швидко налаштувати та керувати маршрутизаторами (routes), проміжним програмним забезпеченням (middleware) і обробкою помилок для вашого API.

У цій статті ми пройдемося через основи створення сучасних API з Express.js, використовуючи аналогії з персонажами Marvel, щоб пояснити ключові концепти, такі як проміжне програмне забезпечення (middleware), маршрутизація (routing) та обробка помилок (error handling).

pic

Чому варто використовувати Express.js з Node.js?

Перед тим, як зануритись в деталі, давайте спершу зрозуміємо, чому Express.js — це чудовий вибір у поєднанні з Node.js:

  • Легкий і швидкий: Express.js — це мінімалістичний фреймворк, який надає простий інтерфейс для швидкої розробки додатків.
  • Гнучкість: Express дозволяє вибирати компоненти (наприклад, бази даних, автентифікацію тощо), які ви хочете використовувати у вашому додатку, що робить його дуже гнучким.
  • Підтримка проміжного програмного забезпечення (middleware): Система проміжного програмного забезпечення Express дозволяє виконувати код на різних етапах циклу запит-відповідь.
  • Маршрутизація (routing): Маршрутизація Express дозволяє визначати кінцеві точки API, які можуть обробляти різні HTTP методи (GET, POST, PUT, DELETE).

Тепер давайте розглянемо, як побудувати API з Express.js, пояснюючи ключові концепти за допомогою аналогій з Marvel!

Проміжне програмне забезпечення (Middleware): Щит Капітана Америки

У світі Express.js, проміжне програмне забезпечення (middleware) діє як щит Капітана Америки. Функції проміжного програмного забезпечення знаходяться між вхідним запитом і фінальною відповіддю, дозволяючи модифікувати запит або відповідь, виконувати перевірки чи обробляти помилки до того, як запит досягне кінцевої точки.

Що таке проміжне програмне забезпечення?

Проміжне програмне забезпечення — це функція, яка виконується під час життєвого циклу запиту до сервера. Воно може виконувати такі завдання, як:

  • Логування запитів
  • Обробка автентифікації та авторизації
  • Парсинг вхідних даних
  • Виконання перевірок безпеки (наприклад, перевірка заголовків)

Аналогія зі щитом Капітана Америки

Так само, як щит Капітана Америки блокує шкідливі атаки і захищає Месників, проміжне програмне забезпечення захищає потік даних у вашому додатку. Воно забезпечує безпеку і правильність вхідного запиту до того, як сервер обробить його далі. Проміжне програмне забезпечення може виконувати роль вартового, блокуючи шкідливі запити або виконуючи важливі операції до їх обробки.

Приклад проміжного програмного забезпечення в Express

const express = require('express');  
const app = express();
// Логування (Щит Капітана Америки)  
app.use((req, res, next) => {  
 console.log(`Запит зроблено на: ${Date.now()}`);  
 next(); // Перехід до наступного проміжного програмного забезпечення або обробника маршруту  
});// Простий маршрут  
app.get('/', (req, res) => {  
 res.send('Привіт, світ!');  
});app.listen(3000, () => {  
 console.log('Сервер працює на порту 3000');  
});

У цьому прикладі проміжне програмне забезпечення для логування діє як щит, переконуючись, що кожен вхідний запит буде зареєстровано до того, як він буде оброблений маршрутом.

Маршрутизація (Routing): Месники збираються

Маршрутизація в Express.js — це як Месники, які збираються для виконання місії. Кожен Месник має свою унікальну роль, так само як кожен маршрут в Express обробляє певний тип HTTP запиту (GET, POST, PUT, DELETE).

Що таке маршрутизація?

У Express маршрутизація (routing) — це механізм, який прив'язує певні HTTP методи (як GET, POST, PUT, DELETE) до функцій, що обробляють запити на певних URL шляхах. Кожен маршрут можна порівняти з різними Месниками, які відповідають на виклик для виконання окремої місії. Кожен маршрут відповідальний за виконання конкретної дії при активації.

Аналогія з Месниками

Кожен Месник (маршрут) має свою унікальну суперсилу (функцію) для виконання завдання. Наприклад, Залізна Людина може обробляти запити для отримання даних (GET), а Чорна Пантера може обробляти запити для створення нових даних (POST).
Так само, як Месники об'єднуються для різних місій, маршрути Express.js працюють разом, щоб обробити всі аспекти API.

Приклад маршрутизації (Routing) в Express

const express = require('express');  
const app = express();
// GET маршрут (Капітан Америка - Лідер)  
app.get('/heroes', (req, res) => {  
 res.send('Ось список усіх супергероїв!');  
});// POST маршрут (Залізна Людина - Створення нових технологій)  
app.post('/heroes', (req, res) => {  
 res.send('Новий супергерой доданий!');  
});// PUT маршрут (Тор - Посилення та вдосконалення)  
app.put('/heroes/:id', (req, res) => {  
 res.send(`Супергерой з ID ${req.params.id} було оновлено.`);  
});// DELETE маршрут (Халк - Знищення старого)  
app.delete('/heroes/:id', (req, res) => {  
 res.send(`Супергерой з ID ${req.params.id} було видалено.`);  
});app.listen(3000, () => {  
 console.log('Сервер працює на порту 3000');  
});

У цьому прикладі:

  • GET /heroes отримує список супергероїв, подібно до того, як Капітан Америка очолює команду і збирає інформацію.
  • POST /heroes додає нового супергероя, як Залізна Людина створює нові технології.
  • PUT /heroes/:id оновлює супергероя, схоже на те, як Тор покращує і зміцнює речі.
  • DELETE /heroes/:id видаляє супергероя, як Халк знищує старі речі.

Кожен маршрут — це як Месник з конкретною роллю у системі.

Обробка помилок: Захист Доктора Стренджа від хаосу

Уявіть, що кожен запит API — це закляття, яке може піти не так. Якщо щось йде не так, вам потрібно мати спосіб захистити систему від краху. Ось тут і приходить на допомогу обробка помилок (error handling), і це схоже на захисні закляття Доктора Стренджа, які допомагають управляти хаосом у мультивсесвіті.

Що таке обробка помилок?

Обробка помилок в Express.js — це спосіб ловити і обробляти будь-які помилки, що виникають під час циклу запит-відповідь. Express надає вбудований механізм для обробки помилок через спеціальні функції проміжного програмного забезпечення (middleware) для обробки помилок. Ці функції зловлять будь-які помилки, що були викинуті вашими маршрутами або проміжним програмним забезпеченням, і повернуть правильну відповідь клієнту.

Аналогія із закляттями Доктора Стренджа

Так само, як Доктор Стрендж накладає закляття для утримання хаосу і захисту мультивсесвіту, проміжне програмне забезпечення для обробки помилок контролює ситуацію у вашому додатку.
Це забезпечує те, що навіть якщо щось піде не так (наприклад, неправильні маршрути, відсутні дані), ваші користувачі не залишаться в темряві, а отримають корисну відповідь.

Приклад обробки помилок (Error Handling) в Express

const express = require('express');  
const app = express();
// Маршрут, який може викликати помилку  
app.get('/heroes', (req, res) => {  
 throw new Error('Супергерої не знайдені!');  
});// Проміжне програмне забезпечення для обробки помилок (Закляття Доктора Стренджа)  
app.use((err, req, res, next) => {  
 console.error(err); // Логування помилки  
 res.status(500).send('Щось пішло не так! Хаос було стримано.');  
});app.listen(3000, () => {  
 console.log('Сервер працює на порту 3000');  
});

У цьому прикладі:

  • Якщо в маршруті виникає помилка, проміжне програмне забезпечення для обробки помилок ловить її (так само, як Доктор Стрендж зупиняє хаос від поширення).
  • Потім воно реєструє помилку та надсилає статус 500 разом з осмисленим повідомленням.

Без обробки помилок необроблена помилка може призвести до краху вашого додатку, але з закляттями Доктора Стренджа на місці, ви зможете стримувати і керувати помилками з гідністю.

Висновок

Express.js — це надзвичайно потужний фреймворк для створення сучасних API з Node.js, і через персонажів Marvel ми пояснили, як проміжне програмне забезпечення (middleware), маршрутизація (routing) і обробка помилок (error handling) працюють разом, щоб зробити ваш додаток ефективним і надійним.

Так само, як щит Капітана Америки, Месники та захисні закляття Доктора Стренджа працюють разом, щоб забезпечити безпеку та ефективність всесвіту Marvel, компоненти Express.js працюють в гармонії, щоб забезпечити плавну і безпечну роботу вашого API.

  • Проміжне програмне забезпечення (Middleware) — це ваш щит, що гарантує безпечні та дійсні запити.
  • Маршрутизація (Routing) — це ваша команда Месників, що займається конкретними завданнями з експертністю.
  • Обробка помилок (Error handling) — це магія Доктора Стренджа, що стримує і управляє хаосом, коли щось йде не так.

Опанувавши ці концепти, ви будете готові до створення надійних, масштабованих API за допомогою Express.js!

Перекладено з: Building Modern APIs with Express.js: A Node.js Framework

Leave a Reply

Your email address will not be published. Required fields are marked *