برنامه نویسی

آموزش آسان: نحوه ایجاد یک API Express برای مبتدیان

معرفی

Express یک چارچوب مینیمالیستی Node.js است. یکی از مزایای کلیدی استفاده از Express توانایی آن در ایجاد APIهای قوی و مقیاس پذیر به راحتی است. در این مقاله، می‌خواهم شما را راهنمایی کنم که چگونه می‌توانید با استفاده از این فناوری عالی یک API ایجاد کنید.

مقداردهی اولیه پروژه

مطمئن شوید که Node.js را روی رایانه خود نصب کرده اید. سپس می توانیم به مقداردهی اولیه پروژه ادامه دهیم. برای این کار باید دستورات زیر را اجرا کنیم:

mkdir my-api        # Create directory for our project
cd my-api           # Navigate to the created directory
npm init -y         # Initialize new project
npm install express # Install dependencies
touch server.js     # Create main file
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون، اجازه دهید ویرایشگر کد مورد نظر خود را باز کرده و آن را تغییر دهیم package.json فایل با تغییر scripts بخش به این:

"scripts": {
  "dev": "node --watch server.js",
  "start": "node server.js"
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا دو اسکریپت برای پروژه خود تعریف کرده ایم: dev و start، هر دو مسئول اجرای کد ما هستند. با این حال، dev از حالت تماشا پشتیبانی می کند، به این معنی که با هر تغییر کد دوباره اجرا می شود. ما فقط استفاده خواهیم کرد dev برای اهداف توسعه

کد

به عنوان مثال، یک API ساده برای یک برنامه فهرست کارها ایجاد خواهیم کرد. در ویرایشگر کد دلخواه خود، آن را باز کنید server.js فایل و کد زیر را قرار دهید:

const express = require("express");

const port = 8080;
const app = express();
app.use(express.json());

const todos = [
  { id: 1, title: "Go grocery shopping 🛒", completed: true },
  { id: 2, title: "Do the laundry 🧺", completed: false },
];

app.listen(port, () => {
  console.log(`[server]: listening on port ${port}`);
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در کد بالا، یک سرور Express را روی پورت مقداردهی اولیه کردیم 8080. ما با استفاده از express.json() میان‌افزار برای فعال کردن محتوای JSON در بدنه درخواست و تعریف یک ذخیره‌سازی از موارد کارهای ما. برای سادگی این مقاله، من از یک متغیر جاوا اسکریپت معمولی برای آن استفاده کرده ام، اما به یاد داشته باشید که برای یک برنامه آماده تولید، همیشه باید از راه حل های پایگاه داده پایدار مانند MySQL یا PostgreSQL استفاده کنید.

استخراج داده ها

برای دریافت داده از API خود، اولین نقطه پایانی خود را تعریف می کنیم و از آن استفاده می کنیم GET روش برای آن لطفا کد زیر را در قسمت قرار دهید server.js فایل:

app.get("/api/todos", (req, res) => {
  res.status(200).json(todos);
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا، ما اولین نقطه پایانی خود را تعریف کردیم – /api/todos. وضعیت پاسخگویی را روی آن تنظیم می کنیم 200، با فرض موفقیت آمیز بودن، و به صورت سریالی کارهای انجام شده در قالب یک پاسخ JSON.

برای تست کد ما، آن را اجرا کنید npm run dev دستور دهید و برای مشاهده نتایج به http://localhost:8080/api/todos بروید.

درج داده ها

برای درج داده با استفاده از API خود، از POST روش برای /api/todos نقطه پایانی کد به شرح زیر است:

app.post("/api/todos", (req, res) => {
  if (!req.body.title) {
    res.status(400).json({ message: "Title is required" });
    return;
  }

  const title = String(req.body.title).trim();
  if (title.length < 3) {
    res.status(400).json({ message: "Title must be at least 3 characters" });
    return;
  }

  const newItem = {
    id: todos.length + 1,
    title,
    completed: false,
  };

  todos.push(newItem);
  res.status(201).json(newItem);
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در ابتدا، ما برخی از اعتبارسنجی اولیه را انجام دادیم – بررسی کردیم که آیا این اعتبار وجود دارد یا خیر title حتی در بدنه درخواست وجود دارد، و اگر نه یا کمتر از 3 کاراکتر باشد، وضعیت پاسخ را بر روی 400، به این معنی است که درخواست نامعتبر بوده است و ما پیام مناسب را برمی گردانیم.

به نحوه استفاده ما توجه کنید return پس از تایید ناموفق برای جلوگیری از هر گونه اجرای کد بیشتر در نقطه پایانی فعلی لازم است.

اگر اعتبارسنجی موفقیت آمیز باشد، سپس اقدام به ایجاد یک مورد جدید می کنیم و آن را به “پایگاه داده” خود فشار می دهیم. سپس وضعیت پاسخ را روی آن تنظیم می کنیم 201، به این معنی است که ما یک مورد جدید ایجاد کرده ایم و آن را برمی گردانیم.

متأسفانه، برای آزمایش این کد، مرورگر کافی نخواهد بود. اگر از ویرایشگر VSCode استفاده می کنید، باید از ابزارهایی مانند Postman یا Thunder Client استفاده کنید.

حذف داده ها

آخرین مرحله، تعریف آن خواهد بود DELETE روش برای /api/todos نقطه پایانی ما از آن برای حذف موارد موجود از “پایگاه داده” استفاده خواهیم کرد.

app.delete("/api/todos/:id", (req, res) => {
  const id = Number(req.params.id);

  const itemIndex = todos.findIndex((todo) => todo.id === id);
  if (itemIndex === -1) {
    res.status(404).json({ message: `Item with id ${id} not found.` });
    return;
  }

  const removedItem = { ...todos[itemIndex] };

  todos.splice(itemIndex, 1);
  res.status(200).json(removedItem);
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای تعریف آیتمی که می‌خواهیم حذف کنیم، از پارامتر مسیر استفاده کردیم (این است /:id بخشی در نقطه پایانی). با استفاده از آن می توانیم به آن دسترسی پیدا کنیم req.params هدف – شی. بنابراین در اینجا، ما بررسی کردیم که آیا یک مورد با ارائه شده است id حتی وجود دارد، و اگر نه، وضعیت پاسخ را بر روی تنظیم می کنیم 404 و پیغام مناسب را برگردانید. اگر وجود داشته باشد، به سادگی آن را از حافظه خود حذف کرده و مورد حذف شده را برمی گردانیم.

اسکرین شات از ابزار Thunder Client که درخواست DELETE را با موفقیت نشان می دهد


این برای این مقاله خواهد بود. کد کامل را می توانید در مخزن زیر بیابید:

امیدوارم امروز لذت برده باشید و چیز جدیدی یاد گرفته باشید. اگر سوالی دارید، می توانید آنها را در بخش نظرات زیر مطرح کنید یا با من تماس بگیرید توییتر.

با تشکر برای خواندن! 👋

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا