REST (Representational State Transfer) API - המכונה לפעמים RESTful AP - הוא API שמשתמש בבקשות HTTP כדי לגשת למשאבים ולהשתמש בהם.
משאבים אלה מיוצגים לעתים קרובות בפורמט JSON, אם כי במקרים מסוימים נעשה שימוש בפורמט XML, טקסט ו-HTML. ממשקי API של REST הפכו לדרך סטנדרטית עבור יישומים להחליף נתונים ברשת באמצעות שיטות HTTP כמו GET, PUT, POST ו-DELETE. הם מקלים על יצירה, קריאה, עדכון ומחיקה של משאבים המכונה בדרך כלל פעולות CRUD.
מדריך זה בוחן כיצד ניתן להשתמש ב-Node. JS ליצירת ממשק API פשוט של CRUD Restful.
מה אתה צריך לעקוב
ודא ש-Node.js מותקן במחשב המקומי שלך. לָרוּץ node -v כדי לבדוק אם Node. JS מותקן. פקודה זו אמורה להחזיר את מספר הגרסה.
קָשׁוּר: כיצד להתקין את Node.js ב-Windows
צריך להיות לך גם מופע עובד של האהוב עליך עורך טקסט (למשל VS Code).
הגדרת פרויקט
צור תיקיה עבור היישום שלך ונווט אליה. בטרמינל ובספרייה שזה עתה יצרת, אתחול package.json על ידי ריצה npm init.
$ npm init -y
ה package.json יעזור לך להתקין ולנהל חבילות npm. ה -י flag יוצר את הקובץ package.json באמצעות אפשרויות ברירת המחדל מבלי שתצטרך להגדיר את הפרטים האישיים. הפלט במסוף שלך אמור להיראות כך. שים לב שהשם יהיה שונה בהתאם לשם התיקייה שלך.
הגדר את השרת
כדי ליצור שרת, ראשית, התקן את Express.js ו-Nodemon. Express.js הוא Node. מסגרת Js שנועדה להקל על פיתוח יישומי אינטרנט וממשקי API. אתה תשתמש בזה להגדיר את השרת ונקודות הקצה של ה-API. מצד שני, Nodemon הוא כלי פיתוח שיפעיל מחדש את השרת שלך כאשר קוד היישום שלך ישתנה.
הפעל את הפקודה הבאה להתקנה אֶקְסְפּרֶס ו צומת:
npm אני מבטא nodemon
לאחר מכן, כדי ליצור את השרת שלך, צור קובץ והתקשר אליו server.js לאחר מכן הוסף את הקוד הבא.
// דורש אקספרס
const express = require("express");
// אתחול אקספרס
const app = express();
const PORT = 8080;
// ניתוח JSON
app.use (express.json());
// נתח נתונים מקודדים של כתובת אתר
app.use (express.urlencoded({ extended: true }));
// צור שרת
app.listen (PORT, () => {
console.log(`שרת פועל ביציאה ${PORT}`);
});
בקוד שלמעלה, דרוש אקספרס בקוד שלך server.js קובץ ואתחול אותו. לאחר מכן, הגדר את Express לנתח נתונים מקודדים ב-JSON ו-URL. לבסוף, צור שרת באמצעות ה להקשיב() שיטה מבית אקספרס.
קָשׁוּר: מהו Express.js ומדוע כדאי להשתמש בו?
תחילת העבודה: צור מערך לאחסון נתוני משתמש
למטרות פשטות, לא תשתמש במסד נתונים אלא במערך משתמש פשוט. ב-app.js שלך, הוסף את הקוד הבא אחרי השורה שמנתחת נתונים מקודדים של כתובת URL.
const users = [{
מזהה: 1,
שם: "ג'יין איילה",
גיל: "22",
},
{
מזהה: 2,
שם: "ג'ון דו",
גיל: "31",
}];
קָשׁוּר: כיצד ליצור מסד נתונים ואוסף ב- MongoDB
כיצד להגדיר מסלולים ב-Express.js
כדי לבצע פעולות בנתונים שלך, עליך להגדיר ניתוב. מסלולים יקבעו כיצד האפליקציה שלך תגיב לבקשות שיוגשו לנקודת קצה מסוימת. לכל נתיב יש שיטת HTTP, כתובת URL ופונקציית מטפל שמטפלת בבקשת ה-HTTP ובתגובה. כדי להגדיר את המסלולים, הוסף את המסלולים הבאים שלך server.js קובץ אחרי שלך משתמשים מַעֲרָך.
app.post('/create', (req, res) => {
// צור משתמש
});
app.get('/users', (req, res) => {
// מאחזר את כל המשתמשים
});
app.get('/user/:userID', (req, res) => {
// מחזיר משתמש לפי מזהה
});
app.put('/user/:userID', (req, res) => {
// עדכן משתמש לפי מזהה
});
app.delete('/delete/:userID', (req, res) => {
// מחק משתמש לפי מזהה
});
app.delete('/users', (req, res) => {
// מחק את כל המשתמשים
});
כיצד לבצע פעולות CRUD ב-Node. Js
אתה צריך ליצור את הפונקציות שיעשו מניפולציות על נתוני המשתמש ויחזירו תגובה בהתאם למסלול המותאם. פונקציות אלו ייצרו, יקראו, יעדכנו וימחקו נתוני משתמש.
קָשׁוּר: כיצד לבצע פעולות CRUD ב- MongoDB
כיצד ליצור משתמש חדש
כדי ליצור משתמש חדש, תצטרך:
- בדוק אם גוף הבקשה ריק - אם כן, שלח תגובת שגיאה.
- חלץ את נתוני המשתמש מגוף הבקשה.
- אמת את נתוני המשתמש.
- דחוף את נתוני המשתמש למערך.
שים לב שאתה משתמש במערך רק למטרות פשטות. בתרחיש אמיתי, אתה תהיה אינטראקציה עם מסד נתונים.
ערוך את מסלול ה-POST שלך כמו למטה.
app.post("/create", (req, res) => {
// בדוק אם גוף הבקשה ריק
if (!Object.keys (req.body).length) {
return res.status (400).json({
הודעה: "גוף הבקשה לא יכול להיות ריק",
});
}
// השתמש בהרס אובייקטים כדי לקבל שם וגיל
const { שם, גיל } = req.body;
if (!שם || !גיל) {
res.status (400).json({
הודעה: "ודא ששלחת גם שם וגם גיל",
});
}
const newUser = {
מזהה: users.length + 1,
שֵׁם,
גיל,
};
נסה {
users.push (newUser);
res.status (201).json({
הודעה: "נוצר בהצלחה משתמש חדש",
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "נכשל ביצירת משתמש",
});
}
});
כיצד לקרוא משתמשים
כדי לאחזר את כל המשתמשים, החזר את מערך המשתמשים בתגובתך.
app.get("/users", (req, res) => {
נסה {
res.status (200).json({
משתמשים
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "כשל אחזור כל המשתמשים",
});
}
});
אם אתה בודק מסלול זה באמצעות postman, אתה אמור לקבל את מערך המשתמשים בגוף התגובה.
כדי לאחזר משתמש אחד בלבד:
- קבל את מזהה המשתמש מפרמטר כתובת האתר.
- להשתמש למצוא() כדי לזהות אילו נתוני משתמש ספציפיים אתה מבקש.
- החזר את המשתמש בתגובה.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (מזהה);
נסה {
let user = users.find((user) => user.id id);
if (!user) {
return res.status (404).json({
הודעה: "המשתמש לא נמצא",
});
}
res.status (200).json({
מִשׁתַמֵשׁ,
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "איחזור המשתמש נכשל",
});
}
});
כיצד לעדכן משתמשים
כדי לעדכן את המשתמש:
- אחזר את מזהה המשתמש מכתובת האתר.
- להשתמש למצוא() כדי לבדוק אם המשתמש קיים.
- להשתמש אינדקס של() כדי לקבל את האינדקס של המשתמש שאליו מפנה.
- השתמש באינדקס כדי לערוך את נתוני המשתמש עם הנתונים שנשלחו דרך גוף הבקשה.
app.put("/users/:userID", (req, res) => {
נסה {
const id = parseInt (req.params.userID);
let user = users.find((user) => user.id id);
if (!user) {
return res.status (404).json({
הודעה: "המשתמש לא נמצא",
});
}
const userIDX = users.indexOf (משתמש);
users[userIDX].name = req.body.name || users[userIDX].name;
users[userIDX].age = req.body.age || users[userIDX].age;
res.status (200).json({
הודעה: "משתמש עודכן בהצלחה",
מִשׁתַמֵשׁ,
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "איחזור המשתמש נכשל",
});
}
});
כיצד למחוק משתמשים
אתה יכול לבחור למחוק משתמש אחד או את כל המשתמשים.
כדי למחוק משתמש אחד:
- אחזר את מזהה המשתמש מכתובת האתר
- להשתמש למצוא() כדי לבדוק אם המשתמש קיים
- להשתמש findIndex() כדי לקבל את האינדקס של המשתמש שאליו מפנה.
- להשתמש אִחוּי() כדי למחוק את המשתמש באותו אינדקס.
app.delete("/users/:userID", (req, res) => {
נסה {
const id = req.params.userID;
let userIDX = users.findIndex((משתמש) => מזהה user.id);
if (!userIDX) {
res.status (404).json({
הודעה: "המשתמש לא נמצא",
});
}
users.splice (userIDX, 1);
res.status (200).json({
הודעה: "משתמש נמחק בהצלחה",
משתמשים,
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "מחיקת המשתמש נכשלה",
});
}
});
כדי למחוק את כל המשתמשים, חבר את כל המערך.
app.delete("/users", (req, res) => {
נסה {
users.splice (0, users.length);
res.status (200).json({
הודעה: "מחקתי בהצלחה את כל המשתמשים",
משתמשים,
});
} תפוס (שגיאה) {
res.status (500).json({
הודעה: "מחיקת משתמשים נכשלה",
איקס,
});
}
});
למידע נוסף על ממשקי API של RESTful
מדריך זה דן כיצד ליצור RESTful API בסיסי ב-Node. JS. למדת כיצד ליצור שרת אקספרס, להגדיר מסלולים, ולבסוף, ליצור פונקציות מטפל המקיימות אינטראקציה עם הנתונים שלך באמצעות בקשות/תגובות HTTP.
עם זאת, ישנם כמה נושאים חיוניים שלא מכוסים כאן שכדאי לך לחקור אותם יותר, כולל כיצד לחבר את היישום שלך למסד נתונים כמו MongoDB וכיצד לאבטח מסלולים.
MongoDB (מ-"humongous") הוא מסד נתונים מונחה מסמכים חוצה פלטפורמות המשמש כחלופה ל-MySQL. אבל מה זה אומר?
קרא הבא
- תִכנוּת
- JavaScript
- ממשק API

מרי גאתוני היא מפתחת תוכנה עם תשוקה ליצור תוכן טכני שהוא לא רק אינפורמטיבי אלא גם מרתק. כשהיא לא מקודדת או כותבת, היא נהנית לבלות עם חברים ולהיות בחוץ.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן כדי להירשם