יצירה באמצעות POST
חלק מהיחידה REST APIs במסלול ה-Node.js של Coddy. שיעור 2 מתוך 18.
לקוח שמוסיף משימה צריך לדעת היכן המשימה החדשה נמצאת. הוא שולח את המשאב החדש לכתובת ה-URL של הרשימה עם POST, והשרת משיב 201 Created עם המשאב ועם כותרת Location המציינת את כתובת ה-URL שלו.
POST /api/events { "name": "Launch party" }
201 Created
Location: /api/events/12
{ "id": 12, "name": "Launch party" }השרת בוחר את המזהה, כך ששני לקוחות לא יכולים לטעון לאותו מזהה. בעזרת הכותרת Location הלקוח יכול לשלוף את האירוע החדש בלי לבנות בעצמו את כתובת ה-URL. res.location(path) מגדירה את הכותרת הזאת, והיא משתלבת בשרשור כמו res.status:
res.status(201).location(`/api/events/${event.id}`).json(event);אתגר
קלPOST /api/tasksעם{ "title" }מחזיר 201 עם המשימה החדשה:idמתוךnextId()ב־store.js,done: false,createdAtמתוךnew Date().toISOString().- הוא מגדיר את
Locationל־/api/tasks/<id>. - אין
title: 400.
שלחו { "title": "Order new chairs" }, ואז בצעו GET לנתיב Location, ואז POST עם {}.
נסו בעצמכם
import { Router } from 'express';
import { tasks } from '../store.js';
const router = Router();
router.get('/', (req, res) => {
res.json(tasks);
});
router.get('/:id', (req, res) => {
const task = tasks.find((t) => t.id === Number(req.params.id));
if (!task) {
return res.status(404).json({ error: 'Task not found' });
}
res.json(task);
});
export default router;
כל השיעורים ביחידה REST APIs
1משאבים ופעלים
משאבים וכתובות URLיצירה באמצעות POST