الإنشاء باستخدام POST
جزء من قسم واجهات REST API في رحلة 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 API
1الموارد والأفعال
الموارد وعناوين URLالإنشاء باستخدام POST