نحوه ایجاد یک CRUD API – NodeJS و پروژه Express برای مبتدیان
API یک فناوری است که ارتباط بین برنامه های نرم افزاری را در اینترنت تقویت می کند. API مخفف Application Programming Interface است و اساساً مجموعه ای از قوانین و پروتکل هایی است که نحوه تعامل نرم افزارهای مختلف با یکدیگر را مشخص می کند.
تصور کنید که دو برنامه متفاوت داشته باشید: برنامه A و برنامه B. برای اینکه این دو برنامه با هم ارتباط برقرار کنند، به یک API نیاز است و مجموعه ای از قوانین تضمین می کند که آنها می دانند هنگام تعامل با یکدیگر چه انتظاری داشته باشند.
به عنوان یک توسعه دهنده پشتیبان، مسئولیت های شما شامل ساخت برنامه های سمت سرور، مدیریت ذخیره سازی داده ها و ارائه عملکردهای لازم برای انجام همه اینها از طریق APIها است.
انواع مختلفی از API مانند REST، GraphQL، gRPC، SOAP و WebSockets وجود دارد. با این حال، وقتی نوبت به توسعه وب میرسد، یکی محبوبتر است و آن REST API است.
در این مقاله یاد خواهید گرفت که چگونه با Node.js و Express با استفاده از معماری REST یک CRUD API ایجاد کنید و تا پایان این مقاله باید یک API کاملاً کاربردی داشته باشید که قادر به انجام عملیات CRUD باشد.
پس ، اجازه دهید با Node.js و Express وارد دنیای توسعه backend شویم و سفر خود را برای ساختن یک CRUD API آغاز کنیم.
فهرست مطالب
چگونه محیط توسعه خود را تنظیم کنید
چگونه یک سرور برای CRUD Restful API خود با Node.js و Express راه اندازی کنید
نحوه ایجاد نقطه پایانی GET /users
چگونه درخواست API GET خود را آزمایش کنیم
نحوه ایجاد نقطه پایانی POST /users
نحوه ایجاد GET /users/:id Endpoint
نحوه ایجاد PATCH /users/:id Endpoint
CRUD API چیست؟
در توسعه وب، عملیات CRUD نان و کره سیستم های پشتیبان هستند. این به این دلیل است که آنها به شما امکان می دهند داده ها را از طریق API خود "ایجاد"، "خواندن"، "به روز رسانی" و "حذف" کنید.
در اینجا یک مرور سریع از چهار روش اصلی HTTP مرتبط با عملیات CRUD آورده شده است:
GET : برای خواندن یا بازیابی داده ها از سرور استفاده می شود.
POST : برای ایجاد داده های جدید روی سرور استفاده می شود.
PUT : برای به روز رسانی داده های موجود در سرور استفاده می شود.
DELETE : برای حذف داده ها از سرور استفاده می شود.
تقریباً هر برنامه وب با یک پایگاه داده برای انجام این چهار عملیات اصلی تعامل دارد. چه یک پلت فرم رسانه های اجتماعی، یک وب سایت تجارت الکترونیک یا یک برنامه هواشناسی، همه آنها به ایجاد، خواندن، به روز رسانی و حذف داده ها متکی هستند.
به عنوان مثال، واتس اپ اخیراً یک ویژگی ویرایش را به برنامه اضافه کرده است که به کاربران امکان می دهد پیام هایی را که قبلاً ارسال شده اند اصلاح کنند. این بخشی از عملیات CRUD در عمل (به روز رسانی) است.
در زمینه ایجاد یک وب API، این عملیات به ستون فقرات نحوه تعامل برنامه شما با داده ها تبدیل می شود. API شما نقاط پایانی را ارائه می دهد که به برنامه های مشتری (مانند برنامه های وب یا تلفن همراه) اجازه می دهد این عملیات را روی سرور انجام دهند.
این ارتباط بین مشتری و سرور جوهره توسعه وب است و درک نحوه ایجاد CRUD API یک مهارت بسیار مهم برای یک توسعه دهنده وب است.
Node.js چیست؟
Node.js یک محیط اجرای متن باز و کراس پلتفرم برای اجرای کد جاوا اسکریپت خارج از مرورگر است. اغلب، ما از آن برای ساخت سرویسهای بکاند، که API نیز نامیده میشوند، استفاده میکنیم. Node برای ایجاد سرویسهای بکاند بسیار مقیاسپذیر، فشرده و بیدرنگ که برنامههای مشتری ما را تقویت میکند، ایدهآل است.
چرا Node؟
این یکی از محبوب ترین انتخاب ها برای ساخت backend است.
شما می توانید جاوا اسکریپت را در کل پشته خود بنویسید و انتقال از یک توسعه دهنده frontend به یک توسعه دهنده باطن و بالعکس را آسان تر می کند.
این امکان مقیاس بندی آسان برنامه ها را فراهم می کند و آن را به انتخاب خوبی برای پروژه های حرفه ای در مقیاس بزرگ تبدیل می کند.
سریع و غیر مسدود است. این به دلیل ماهیت رویداد محور ناهمزمان Node.js است.
Node.js دارای یک جامعه پر جنب و جوش و یک اکوسیستم غنی از بسته ها و کتابخانه ها است.
نحوه نصب Node.js
مراحل نصب:
نصب کننده Mac/Windows را از وب سایت Node.js دانلود کنید.
نسخه پشتیبانی بلند مدت (LTS) را که در سمت چپ نشان داده شده است انتخاب کنید
پس از دانلود، نصب کننده را نصب/اجرا کنید و سپس دستورات را دنبال کنید. (شما باید چند بار روی دکمه NEXT کلیک کنید و تنظیمات پیش فرض نصب را بپذیرید
برای تأیید اینکه Node با موفقیت نصب شده است، ترمینال خود را باز کرده و دستور را اجرا کنید. (برای ویندوز، ممکن است لازم باشد دستور خود را قبل از اجرای آن دوباره راه اندازی کنید.)
node –version
اکسپرس چیست؟
Express یک چارچوب وب سریع، بدون نظر و مینیمالیستی برای Node.js است. اساساً به شما این امکان را می دهد که API های خود را همانطور که می خواهید با کد کمتر بسازید.
این یک فریمورک است که بر روی Node.js ساخته شده است که به شما امکان می دهد به راحتی Backend خود را ایجاد کنید. می توانید از Express در ترکیب با فریم ورک های فرانت اند مانند React، Angular یا Vue برای ساخت برنامه های فول استک استفاده کنید.
چرا به اکسپرس نیاز دارید؟
ساخت برنامه های وب با Node.js را بسیار آسان تر می کند.
بسیار سبک، سریع و رایگان است.
هم برای برنامه های ارائه شده توسط سرور و هم برای API/Microservices استفاده می شود.
به شما کنترل کامل بر درخواست ها و پاسخ ها می دهد.
پیش نیازها
برای پیگیری، باید موارد زیر را داشته باشید:
دانش پایه جاوا اسکریپت
Node.js و Postman را بر روی کامپیوتر خود دانلود و نصب کنید
کد کامل این آموزش را در Github مشاهده کنید.
چگونه محیط توسعه خود را تنظیم کنید
قبل از شروع به ایجاد API خود، بیایید روند ایجاد یک سرور اصلی در رایانه محلی شما را مرور کنیم.
در اینجا مراحلی وجود دارد که باید دنبال کنید:
مرحله 1 - ایجاد دایرکتوری
یک دایرکتوری/پوشه در رایانه خود ایجاد کنید. پوشه را در یک ویرایشگر کد باز کنید
مرحله 2 - فایل index.js را ایجاد کنید
با استفاده از این دستور یک فایل index.js در داخل پوشه ایجاد کنید:
touch index.js
مرحله 3 - NPM را راه اندازی کنید
NPM را در داخل پوشه با اجرای این دستور در ترمینال خود راه اندازی کنید:
npm init -y
دستور یک فایل package.json با مقادیر پیش فرض ایجاد می کند.
مرحله 5 - Express را نصب کنید
برای نصب Express.js از دستور زیر استفاده کنید
npm install express
پس از نصب Express، به فایل package.json بروید و عبارت "type" را وارد کنید: "module" . این اعلان به Node می گوید که این پروژه به جای common.js از syntax ماژول ES6 (واردات/صادرات) استفاده می کند که پیش فرض در Node است.
چگونه یک سرور برای CRUD Restful API خود با Node.js و Express راه اندازی کنید
برای ایجاد یک CRUD restful API، ابتدا باید سرور خود را راه اندازی کنید. با دنبال کردن این مراحل می توانید این کار را انجام دهید:
مرحله شماره 1 - کد برنامه سرور خود را در داخل فایل index.js بنویسید
در واقع، یک کد سرور به شکل زیر خواهد بود:
import express from 'express'; import bodyParser from 'body-parser const app = express(); const PORT = 5000 app.use(bodyParser.json()); app.listen(PORT, () => console.log(`Server running on port: http://localhost:${PORT}`));
در اینجا توضیحی برای کد بالا آورده شده است:
در خط اول، express
از ماژول Express که نصب کردیم وارد کردیم.
bodyParser
با Express ارائه می شود و به ما اجازه می دهد تا بدنه درخواست POST ورودی را دریافت کنیم.
در مرحله بعد، ما یک app
با استفاده از شی express
ایجاد کردیم.
سپس پورت برنامه را مشخص کردیم - روی 5000 تنظیم شد (اگر با استفاده از این پورت خطایی دریافت کردید، ممکن است این پورت در حال حاضر توسط برنامه دیگری استفاده شود، پس می توانید پورت خود را تغییر دهید یا دیگری را متوقف کنید. برنامه از استفاده از پورت).
در مرحله بعد، ما مشخص کردیم که داده های JSON در برنامه استفاده می شود.
هنگامی که ایجاد شد، از روش listen
در app
استفاده کردیم تا برنامه ما به درخواستهای دریافتی گوش دهد. این روش دو چیز را میپذیرد: PORT ، جایی که ما به درخواستهای سمت کلاینت خود گوش میدهیم، و یک تابع callback که هنگام راهاندازی سرور ما فعال میشود.
مرحله 2 - سرور را راه اندازی کنید
اکنون می توانید با اجرای این دستور سرور خود را راه اندازی کنید. اگر از فایل دیگری استفاده کرده اید، نام فایلی را که سرور در آن قرار دارد جایگزین index.js کنید.
node index.js
حالا سرور شما باید روی پورت 5000 کار کند. می توانید تحلیل کنید که سرور شما روی ترمینال شما کار می کند
مرحله 3 - نصب Nodemon (اختیاری)
در حال حاضر، هر زمان که در فایل سرور خود تغییراتی ایجاد می کنید، باید سرور را مجدداً راه اندازی کنید تا تغییرات شما منعکس شود (می توانید آن را امتحان کنید و ببینید). پس برای رسیدگی به این چالش می توانید از Nodemon استفاده کنید. برای نصب آن دستور را اجرا کنید:
npm install nodemon
برای استفاده از Nodemon، به فایل package.json خود بروید و یک اسکریپت تنظیم کنید. اسکریپت شروع خود را با این جایگزین کنید:
"start": "nodemon index.js"
توجه داشته باشید که index.js فایلی است که کد سرور در آن نوشته شده است.
اکنون می توانید سرور خود را با اجرای این دستور راه اندازی کنید:
npm start
با این کد، ما سروری را راه اندازی کرده ایم که به پورت 5000 گوش می دهد و هنگام راه اندازی پیامی را چاپ می کند. اما این تازه آغاز راه است زیرا سرور ما باید کارهای بیشتری انجام دهد.
بیایید در ادامه نحوه رسیدگی به درخواستهای API را تحلیل کنیم.
مثال CRUD API
بیایید با تعریف مسیرهای API برای هر عملیات CRUD شروع کنیم. این مسیرها به عنوان نقاط ورودی برای API شما عمل میکنند و به اقدامات خاصی که میخواهیم روی دادههای خود انجام دهیم، نقشه میدهند.
در مورد ما، این اقدامات ایجاد، خواندن، بهروزرسانی و حذف دادهها است.
نحوه ایجاد مسیرهای API
وقتی پورت ( http://localhost:5000/ ) در مرورگر باز می شود، با خطا مواجه می شوید.
این به این دلیل است که Node.js و Express همه در مورد مسیریابی هستند و ما هنوز هیچ مسیری نداریم.
می توانید مسیرهای API را با استفاده از متدهای app.get()
، app.post()
، app.put()
و app.delete()
در برنامه Express خود (در فایل index.js ) تعریف کنید.
در اینجا نحوه ایجاد یک مسیر برای رسیدگی به درخواست های GET با استفاده از تابع app.get()
آمده است:
app.get('/', (req, res)
تابع app.get()
دو پارامتر را می پذیرد. اولین مورد برای تعیین مسیر استفاده می شود (در این مورد، '/' است).
پارامتر بعدی یک تابع callback است که در آن تعریف میکنید وقتی درخواست GET فراخوانی میشود چه اتفاقی میافتد. این تابع همچنین دارای دو پارامتر است: بدنه درخواست ( req
)، که می تواند حاوی اطلاعاتی مانند رشته درخواست درخواست، پارامترها، بدنه و هدرهای HTTP باشد. در حالی که شی پاسخ ( res
) حاوی اطلاعاتی است که می خواهید ارسال کنید
این هم کد کامل:
import express from 'express'; import bodyParser from 'body-parser' const app = express(); const PORT = 5000; app.use(bodyParser.json()); app.get('/', (req, res) => { console.log('[GET ROUTE]'); res.send('HELLO FROM HOMEPAGE'); }) app.listen(PORT, () => console.log(`Server running on port: http://localhost:${PORT}`));
وقتی به http://localhost:5000/ برمیگردید و آن را بهروزرسانی میکنید، دیگر با خطا مواجه نمیشوید.
نحوه ایجاد CRUD API خود
برای این API، شما مجموعه ای از کاربران را مدیریت خواهید کرد. مدیریت کاربران در پایگاه داده یک مثال عالی است زیرا در اکثر برنامه ها مورد استفاده رایج است.
در اینجا نقاط پایانی API وجود دارد که می خواهید ایجاد کنید:
GET /users - همه کاربران را پیدا کنید
POST /users - یک کاربر ایجاد می کند
GET /users/:id - کاربر خاصی را پیدا می کند
DELETE /users/:id - یک کاربر خاص را حذف می کند
نحوه ایجاد نقطه پایانی GET /users
خواندن داده ها یکی از رایج ترین عملیات در API است. در این مثال، فهرست ی از تمام کاربران پایگاه داده ساختگی خود را دریافت خواهید کرد. این اطلاعات در قالب JSON ارائه خواهد شد.
برای تعریف مسیری برای بازیابی اطلاعات کاربران از پایگاه داده، مراحل زیر را دنبال کنید:
یک پوشه جدید به نام routes ایجاد کنید
یک فایل جدید به نام users.j s در داخل پوشه routes ایجاد کنید.
کد راه اندازی روتر GET را بنویسید.
import express from 'express'; const router = express.Router(); // Mock database const users = [ { first_name: 'John', last_name: 'Doe', email: 'johndoe@example.com', }, { first_name: 'Alice', last_name: 'Smith', email: 'alicesmith@example.com', }, ]; // Getting the list of users from the mock database router.get('/', (req, res) => { res.send(users); }) export default router
در این قطعه کد:
«import express از «express»؛» چارچوب Express.js را وارد میکند
'const router = express.Router();' یک نمونه روتر جدید ایجاد می کند که در روتر متغیر ذخیره می شود.
متغیر users
به عنوان پایگاه داده ساختگی شامل آرایه ای از کاربران عمل می کند.
تابع router.get()
مسیری را تنظیم می کند که به درخواست های HTTP GET پاسخ می دهد.
قسمت دوم کد (req, res) => { ... }
یک تابع callback است. زمانی که درخواستی به مسیر GET ارسال می شود، اجرا می شود.
در داخل تابع callback، ما از res.send(users)
برای ارسال پاسخ به مشتری استفاده کردیم. در این مثال، ما متغیر users
به عنوان پاسخ ارسال می کنیم. پس هنگامی که یک کاربر URL GET را میزند، سرور با ارسال دادههای درون متغیر users
با فرمت JSON برای مشتری پاسخ میدهد.
تغییرات خود را در فایل users.js ذخیره کنید. سپس در فایل index.js موارد زیر را انجام دهید:
مسیرهای کاربری خود را از user.js وارد کنید:
import userRoutes from './routes/users.js'
از روش app.use
استفاده کنید و مسیر و کنترلر روتر را مشخص کنید:
app.use('/users', userRoutes);
وقتی کاربر از http://localhost:5000/users بازدید می کند، روتر فعال می شود. این به طور موثر به عنوان یک فیلتر عمل می کند و تعیین می کند که چه زمانی باید یک مجموعه خاص از مسیرها اعمال شود.
در اینجا کد کامل فایل index.js آمده است:
import express from 'express'; import bodyParser from 'body-parser' const app = express(); import userRoutes from './routes/users.js' const PORT = 5000; app.use(bodyParser.json()); app.use('/users', userRoutes); app.get('/', (req, res) => res.send('HELLO FROM HOMEPAGE')) app.get('/', (req, res)); app.listen(PORT, () => console.log(`Server running on port: http://localhost:${PORT}`));
چگونه درخواست API GET خود را آزمایش کنیم
میتوانید از مرورگر (مرورگرها فقط برای انجام درخواستهای GET استفاده شوند) یا Postman برای آزمایش درخواست GET استفاده کنید.
پس URL API خود را کپی کنید، http://localhost:5000/users ، و آن را در Postman یا در مرورگر خود قرار دهید. اگر از Postman استفاده می کنید، ابتدا باید یک درخواست GET ارسال کنید، سپس URL API خود را جایگذاری کنید و سپس روی ارسال کلیک کنید. پس از آن، فهرست کاربران را در کنسول Postman خود مشاهده خواهید کرد.
نحوه ایجاد نقطه پایانی POST /users
می توانید از درخواست POST برای گفت ن داده به پایگاه داده خود استفاده کنید. ورودی های مشتری را می پذیرد و در پایگاه داده ذخیره می کند. برای ایجاد داده در API خود، مسیری را تعریف میکنیم که درخواستهای POST را میپذیرد و دادهها را در پایگاه داده ساختگی که تنظیم کردهاید ذخیره میکند.
اما قبل از آن، به بسته UUID نیاز دارید. برای نصب از این دستور استفاده کنید:
npm install uuid
این بسته به ایجاد یک شناسه منحصر به فرد برای هر کاربری که ایجاد می کنید کمک می کند. این زمانی مفید خواهد بود که کاربر GET، DELETE و PATCH را با درخواستهای ID پیادهسازی میکنید، جایی که به راهی برای شناسایی یک کاربر خاص نیاز دارید.
پس در فایل users.js موارد زیر را انجام دهید:
بسته uuid
را وارد کنید:
import { v4 as uuidv4 } from 'uuid';
در مرحله دوم، شما باید کد درخواست POST را پیاده سازی کنید.
router.post('/', (req, res) => { const user = req.body; users.push({ ...user, id: uuidv4() }); res.send(`${user.first_name} has been added to the Database`); })
در قطعه کد:
تابع router.post()
مسیری را تنظیم می کند که به درخواست های HTTP POST پاسخ می دهد. این به این معنی است که وقتی مشتری درخواست POST را به آدرس اصلی برنامه شما ارسال می کند، این مسیر فعال می شود.
در تابع callback (req, res) => { ... }
به شی req
که نمایانگر درخواست ورودی ارسال شده توسط مشتری است دسترسی داریم. به طور خاص، ما به ویژگی req.body
علاقه مند هستیم. این ویژگی حاوی داده هایی (نام، نام خانوادگی و ایمیل) است که مشتری به عنوان بخشی از بدنه درخواست POST ارسال می کند.
با const user = req.body
این داده ها را از req.body
استخراج کرده و در متغیر user
ذخیره می کنیم.
در مرحله بعد، داده های user
را به آرایه ای به نام users
اضافه کردیم. برای اطمینان از اینکه هر کاربر یک شناسه منحصر به فرد دارد، یک شناسه منحصر به فرد جهانی (UUID) با استفاده از تابعی مانند uuidv4()
ایجاد می کنیم و آن را به عنوان id در شی کاربر قرار می دهیم. این به حفظ سوابق کاربر متمایز و قابل شناسایی کمک می کند.
در نهایت، ما از res.send()
برای ارسال پاسخ به مشتری استفاده کردیم. در این مورد، ما یک پیام ساده ارسال می کنیم که به مشتری اطلاع می دهد که کاربر با موفقیت به پایگاه داده اضافه شده است. پیام شامل نام کوچک کاربر برای لمس شخصی است.
در اینجا کد کامل است
import express from 'express'; import { v4 as uuidv4 } from 'uuid'; const router = express.Router(); const users = []; // Adding users to our mock database router.post('/', (req, res) => { const user = req.body; users.push({ ...user, id: uuidv4() }); res.send(`${user.first_name} has been added to the Database`); }) export default router
نحوه تست درخواست POST
برای ایجاد درخواست POST در Postman مراحل زیر را باید دنبال کنید:
برو پیش پستچی
یک برگه درخواست جدید باز کنید
"POST" را از فهرست روش های HTTP موجود انتخاب کنید
در قسمت URL، URL کاملی را که میخواهید درخواست POST را ارسال کنید، وارد کنید ( http://localhost:5000/users )
در پنجره درخواست روی تب "Body" کلیک کنید.
قالبی را که می خواهید داده های POST خود را در آن ارسال کنید انتخاب کنید (JSON را انتخاب کنید).
داده هایی را که می خواهید ارسال کنید در بدنه درخواست وارد کنید. این داده ها باید با فرمت مورد انتظار سرور مطابقت داشته باشد.
در نهایت بر روی “ارسال” کلیک کنید
اگر موفقیت آمیز باشد، پاسخی دریافت خواهید کرد که «دانی به پایگاه داده اضافه شده است».
برای تأیید اینکه آیا اضافه شده است یا خیر، یک درخواست GET داشته باشید و باید مشاهده کنید که کاربر جدید به پایگاه داده شما اضافه شده است. (توجه: این اطلاعات کاربر هنگام راه اندازی مجدد سرور شما از بین می رود زیرا در پایگاه داده واقعی ذخیره نمی شود).
نحوه ایجاد GET /users/:id Endpoint
واکشی داده های خاص بر اساس یک شناسه منحصر به فرد، مانند شناسه کاربر، یک عملیات رایج است. اغلب برای ایجاد ویژگی هایی مانند نمایه های کاربر یا بازیابی سوابق فردی از پایگاه داده ضروری است.
در این بخش، نحوه استفاده از این نقطه پایانی (users/:id) برای بازیابی اطلاعات کاربر بر اساس شناسه کاربر ارائه شده را تحلیل خواهید کرد.
بیا شروع کنیم!
router.get('/:id', (req, res) => { const { id } = req.params; const foundUser = users.find((user) => user.id === id) res.send(foundUser) });
این قطعه کد چه کاری انجام می دهد:
تابع router.get()
مسیری را تنظیم می کند که به درخواست های HTTP GET پاسخ می دهد. در این مثال، ما یک مسیر با ('/:id') تعریف کرده ایم. قسمت :id یک پارامتر مسیر است که به ما امکان می دهد یک مقدار پویا از URL دریافت کنیم. در این مورد، نشان دهنده شناسه کاربری است که قصد داریم بازیابی کنیم.
در تابع callback (req, res) => { ... }
می توانیم به شی req
که نمایانگر درخواست ورودی ارسال شده توسط مشتری است دسترسی داشته باشیم. به طور خاص، ما به req.params
علاقه مندیم که مقادیر پارامترهای مسیر را در خود نگه می دارد. در این مورد، ما id
از req.params
تخریب می کنیم و به طور موثر شناسه کاربر را از URL استخراج می کنیم. به عنوان مثال، اگر یک مشتری یک درخواست GET به /users/123 بدهد، شناسه "123" خواهد بود.
ما از روش .find()
برای جستجوی این داده ها بر اساس شناسه کاربر (id) گرفته شده از URL استفاده کردیم. این روش سعی می کند کاربری را پیدا کند که شناسه اش با شناسه ارائه شده مطابقت داشته باشد.
هنگامی که داده های کاربر را پیدا کردیم (در صورت وجود)، آن را به عنوان پاسخ با استفاده از res.send(foundUser)
ارسال می کنیم. متغیر foundUser
شامل شی کاربر است که با شناسه درخواستی مطابقت دارد.
نحوه تست درخواست GET
در آزمایش API، مراحل زیر را دنبال کنید:
به برگه درخواست POST خود بروید و هر تعداد که می خواهید برای گفت ن یک کاربر جدید به پایگاه داده درخواست دهید.
به برگه درخواست GET خود بروید و درخواستی را برای مشاهده فهرست کاربرانی که اضافه کرده اید ارائه دهید
شناسه هر یک از کاربران فهرست را کپی کنید
یک برگه درخواست جدید GET ایجاد کنید، در URL پایه API کپی کنید و شناسه هر یک از کاربران را به آن اضافه کنید. باید در قالبی مانند این باشد: http://localhost:5000/users/734a9e75-b3f5-415f-82fb-79b4fdf1a593
بر روی "ارسال" کلیک کنید. در صورت موفقیت آمیز بودن، اطلاعات کاربری شناسه کاربری که برای درخواست استفاده کرده اید را مشاهده خواهید کرد
نحوه ایجاد DELETE /users/:id
گاهی اوقات، به دلایل مختلف، مانند غیرفعال کردن حساب، حذف حساب های کاربری یا سوابق خاص از پایگاه داده ضروری است.
در اینجا نحوه استفاده از این نقطه پایانی برای حذف داده های کاربر بر اساس شناسه کاربر ارائه شده را تحلیل خواهید کرد.
برای حذف دادهها، مسیری را تعریف میکنیم که درخواستهای DELETE را میپذیرد و دادهها را از پایگاه داده حذف میکند.
کد حذف کاربر از پایگاه داده را در زیر مشاهده کنید
router.delete('/:id', (req, res) => { const { id } = req.params; users = users.filter((user) => user.id !== id) res.send(`${id} deleted successfully from database`); });
در اینجا کاری است که این کد انجام می دهد:
تابع router.delete()
مسیری را تنظیم می کند که به درخواست های HTTP DELETE پاسخ می دهد. در این مثال، ما مسیری را با ('/:id') تعریف کردهایم که در آن :id یک پارامتر مسیر است. این یک مقدار پویا از URL دریافت می کند که نشان دهنده شناسه کاربری است که قصد داریم حذف کنیم.
در تابع callback (req, res) => { ... }
می توانیم به شی req
که نمایانگر درخواست ورودی ارسال شده توسط مشتری است دسترسی داشته باشیم. به طور خاص، ما به req.params
علاقه مندیم که مقادیر پارامترهای مسیر را در خود نگه می دارد. در اینجا، شناسه را از req.params
تخریب می کنیم و شناسه کاربر را از URL استخراج می کنیم. به عنوان مثال، اگر مشتری درخواست DELETE را به /users/123 ارسال کند، شناسه "123" خواهد بود.
با فرض اینکه یک آرایه یا پایگاه داده (کاربران) حاوی داده های کاربر داریم، از روش .filter()
برای ایجاد یک آرایه جدید استفاده می کنیم که کاربر با شناسه (id) منطبق را حذف می کند. این به طور موثر کاربر را از فروشگاه داده حذف می کند.
پس از حذف موفقیت آمیز کاربر، با استفاده از res.send()
پاسخی را برای مشتری ارسال می کنیم. پاسخ حاوی پیامی است که حذف را تأیید می کند، از جمله شناسه کاربر که از پایگاه داده حذف شده است.
نحوه تست درخواست DELETE
در اینجا مراحل حذف یک کاربر از پایگاه داده در Postman آمده است:
برو پیش پستچی
یک برگه درخواست جدید باز کنید
از فهرست روش های HTTP موجود، "DELETE" را انتخاب کنید
URL را وارد کنید. باید حاوی شناسه کاربری باشد که میخواهید حذف کنید (به عنوان مثال: http://localhost:5000/users/734a9e75-b3f5-415f-82fb-79b4fdf1a593 ). اگر کاربر در پایگاه داده خود ندارید، باید یک کاربر ایجاد کنید و شناسه را کپی کنید.
بر روی "ارسال" کلیک کنید.
نحوه ایجاد PATCH /users/:id Endpoint
مواقعی وجود دارد که نیازی به به روز رسانی کل یک منبع یا شی نیست. در عوض، شما می خواهید تغییرات یا تنظیمات جزئی را انجام دهید. اینجاست که درخواست HTTP PATCH وارد عمل می شود.
به عنوان مثال، پس از ایجاد یک کاربر جدید، می توانید نام، نام خانوادگی یا ایمیل آن کاربر را با استفاده از درخواست PATCH تغییر دهید. بیایید ببینیم چگونه این کار را انجام دهیم.
router.patch('/:id', (req, res) => { const { id } = req.params; const { first_name, last_name, email} = req.body; const user = users.find((user) => user.id === id) if(first_name) user.first_name = first_name; if(last_name) user.last_name = last_name; if(email) user.email = email; res.send(`User with the ${id} has been updated`) });
در اینجا چیزی است که این قطعه کد انجام می دهد:
تابع router.patch()
مسیری را تنظیم می کند که به درخواست های HTTP PATCH پاسخ می دهد. در این مثال، ما مسیری را با ('/:id') تعریف کردهایم که در آن :id یک پارامتر مسیر است. این مقدار پویا را از URL دریافت می کند، که نشان دهنده شناسه کاربری است که قصد داریم به روز کنیم.
در تابع callback (req, res) => { ... }
می توانیم به شی req
که نمایانگر درخواست ورودی ارسال شده توسط مشتری است دسترسی داشته باشیم. به طور خاص، ما به req.params
علاقهمندیم که مقادیر پارامترهای مسیر (در این مورد id) را در خود نگه میدارد و req.body
که حاوی دادههایی است که باید بهروزرسانی شوند.
در مرحله بعد، ما از .find()
برای مکان یابی شی کاربر با شناسه (id) منطبق استفاده کردیم. پس از یافتن، میتوانیم دادههای کاربر را بر اساس محتوای req.body
تغییر دهیم. همچنین تحلیل کردیم که آیا مشخصات first_name، last_name یا ایمیل در req.body
وجود دارد یا خیر. اگر این کار را انجام دهند، می توانیم ویژگی های مربوط به شی کاربر را با مقادیر جدید به روز کنیم. این به ما این امکان را می دهد که بدون تأثیرگذاری بر سایر ویژگی ها، تغییرات انتخابی در داده های کاربر ایجاد کنیم.
پس از اعمال موفقیت آمیز تغییرات درخواستی، با استفاده از res.send()
پاسخی را برای مشتری ارسال می کنیم. پاسخ شامل یک پیام تأیید به روز رسانی موفقیت آمیز داده های کاربر به همراه شناسه کاربر است.
نحوه تست درخواست پچ
برای ایجاد یک درخواست PATCH در Postman مراحل زیر را دنبال کنید:
برو پیش پستچی
یک برگه درخواست جدید باز کنید
"PATCH" را از فهرست روش های HTTP موجود انتخاب کنید
آدرس اینترنتی را وارد کنید؛ URL حاوی شناسه کاربری است که می خواهید حذف کنید (به عنوان مثال: http://localhost:5000/users/734a9e75-b3f5-415f-82fb-79b4fdf1a593 ). اگر کاربر در پایگاه داده خود ندارید، باید یک کاربر ایجاد کنید و شناسه را کپی کنید.
روی تب "Body" در پنجره درخواست کلیک کنید و قالبی را که می خواهید داده های PATCH خود را در آن ارسال کنید (به عنوان مثال: JSON، فرم-داده، x-www-form-urlencoded) انتخاب کنید.
داده هایی را که می خواهید ارسال کنید در بدنه درخواست وارد کنید. این داده ها فقط باید شامل تغییرات خاصی باشد که می خواهید در منبع ایجاد کنید.
سپس روی دکمه "ارسال" کلیک کنید. Postman درخواست PATCH را با داده های ارائه شده به URL مشخص شده ارسال می کند.
بسته بندی
APIها پایهای هستند که اجزای مختلف نرمافزار را به هم متصل میکنند و آنها را قادر میسازند به طور یکپارچه با هم کار کنند. آنها به آنها اجازه می دهند تا ارتباط برقرار کنند، داده ها را به اشتراک بگذارند و وظایف را انجام دهند. در زمینه توسعه وب، APIها وب را قادر می سازند تا همانطور که امروز می شناسیم عمل کند.
در این آموزش، توسعه Backend را با ایجاد یک CRUD API با Node.js و Express تحلیل کردیم. ما مفاهیم مختلفی مانند نحوه راه اندازی یک محیط توسعه، ایجاد سرور با Express و Node.js و مهمتر از همه، نحوه مدیریت عملیات CRUD و آزمایش API خود با استفاده از Postman را پوشش دادیم.
در حالی که ما جنبه های اساسی ایجاد API را در این آموزش پوشش داده ایم، هنوز چشم انداز وسیعی از دانش برای تحلیل در مورد API ها وجود دارد. اینها شامل نحوه ایمن سازی API خود با گفت ن احراز هویت، نحوه استفاده از میان افزار، تعامل با پایگاه داده، استقرار API و موارد دیگر است.
ارسال نظر