Menu
CoddyTech

وصف جسم الطلب

جزء من قسم واجهات REST API في رحلة Node.js على Coddy. الدرس 7 من 25.

‏zod حزمة مثبّتة تتحقق من القيم بمقارنتها بوصف تكتبه. يوفّر import { z } from 'zod' أداة إنشاء المخططات، وهي z. يمكن لوصف واحد أن يحل محل عمليات التحقق المتكررة من الحقول التي تكتبها يدويًا.

يصف المخطط القيم التي يُسمح للطلب باحتوائها. باستخدام zod، تسرد z.object الحقول وتحدد قاعدة لكل منها. تقبل z.string() النصوص؛ وتقبل z.number() الأعداد.

const Book = z.object({
    title: z.string(),
    year: z.number(),
});

كلا الحقلين مطلوب هنا. يتحقق السطر الأخير في exercise.js من الكائن بمقارنته بمخططك؛ ويشرح الدرس التالي safeParse. في هذه الخطوة الأولى، ركّز على أسماء الحقول وأنواعها. ستستخدم خطوة لاحقة نتيجة التحقق الكاملة لتحديد ما ينبغي أن تعيده واجهة API.

challenge icon

التحدي

سهل

هذا مشروع تدريبي صغير. إعداده مُجهّز؛ عدّل exercise.js فقط.

أكمل مخطط Task بسلسلة نصية title وقيمة منطقية done، باستخدام z.boolean(). إرسال POST إلى /result مع {"title":"Read","done":false} يعيد {"valid":true}. إذا كان العنوان مفقودًا أو كانت قيمة done سلسلة نصية، فسيُعيد {"valid":false}.

يستخدم GET /result الأولي المثال المزوّد {"title": "Read", "done": "false"}. استخدم POST /result مع متن JSON لتجربة مدخلات أخرى.

يقبل مخطط البداية الفارغ هذا النوع الخاطئ؛ يجب أن يُبلغ مخططك المكتمل عن {"valid":false} عند طلب GET الأولي.

جرّب بنفسك

import { z } from 'zod';
const Task = z.object({});
export function exercise(body) {
    return { valid: Task.safeParse(body).success };
}

جميع دروس واجهات REST API

تدرّب بنفسك: Playground لـ Express