مستندات

MockData مجموعه‌ای از APIهای آماده برای تست و توسعه است که داده‌ها را به‌صورت JSON برمی‌گردانند. می‌توانید از APIها مستقیماً در پروژه‌تان استفاده کنید، درخواست‌ها را در محیط تست بررسی کنید، احراز هویت را تمرین کنید، داده‌های تستی خودتان را با Generator بسازید، از مولد تصویر برای placeholder استفاده کنید، میزکار JSON را در /json باز کنید یا از API موقت برای اشتراک‌گذاری داده‌های JSON استفاده کنید.

تازه‌ها

آخرین قابلیت‌ها و تغییرات MockData را اینجا ببینید. برای دیدن جزئیات هر مورد، روی آن کلیک کنید.

    • میزکار JSON را از /json باز کنید و ابزار را انتخاب کنید؛ فضای کاری همان‌جا عوض می‌شود (deep-link با ?tool=).
    • اصلی: فرمت، درخت، جستجو، JSONPath و مقایسه ساختار.
    • تبدیل: TypeScript، Zod، JSON Schema، YAML و CSV.
    • ابزارها: مرتب‌سازی کلید، حذف خالی‌ها، flatten، escape، ترمیم، pick/omit و بیشتر.
    • هنوز در حال توسعه است — ابزارها و جزئیات بیشتری اضافه می‌شود.

    بیشتر بدانید

    • از /image-generator حالت SVG یا تصویر واقعی را انتخاب کنید، ابعاد را بگذارید و لینک را کپی کنید.
    • آدرس عمومی به‌صورت پیش‌فرض تصادفی است: /image/{w}/{h} برای SVG و ?type=real برای عکس.
    • با ?seed= می‌توانید همان رنگ SVG یا همان عکس را ثابت نگه دارید.
    • لینک را مستقیم در img، CSS یا هر فیلد تصویر بگذارید — بدون آپلود.

    بیشتر بدانید

    • در صفحه /generator می‌توانید داده‌های تستی برای افراد، فروشگاه، محتوا، رسانه، کسب‌وکار و مکان بسازید.
    • خروجی را می‌توانید به‌صورت JSON برای بدنه POST یا به‌شکل رکوردهای API دریافت کنید. برای داده‌های فارسی هم مجموعه داده‌های فارسی در دسترس است.
    • امکان ساخت حداکثر ۱۰۰۰ رکورد در مرورگر وجود دارد. ساخت API موقت نیز با محدودیت ۵۰۰ رکورد یا ۶۴ کیلوبایت انجام می‌شود.
    • انتخاب‌ها و داده‌های ساخته‌شده هنگام جابه‌جایی بین صفحات حفظ می‌شوند، اما با رفرش کامل صفحه از بین می‌روند.

    بیشتر بدانید

    • از صفحه /temporary یک API موقت بسازید و مدت اعتبار آن را روی ۱، ۶، ۱۲ یا ۲۴ ساعت تنظیم کنید.
    • با همان آدرس می‌توانید داده‌ها را دریافت، ایجاد، ویرایش و حذف کنید.
    • هر مرورگر می‌تواند حداکثر ۵ API فعال داشته باشد و در هر ساعت حداکثر ۲۰ API برای هر IP ساخته می‌شود.
    • لینک API را مثل یک اطلاعات خصوصی در نظر بگیرید. تا زمانی که منقضی نشده، هر کسی که به لینک دسترسی داشته باشد می‌تواند به داده‌های آن دسترسی پیدا کند و آن‌ها را تغییر دهد.

    بیشتر بدانید

    • از صفحه مستندات هر منبع، وارد صفحه «پیش‌نمایش» شوید و API را مستقیماً از طریق رابط کاربری امتحان کنید.
    • می‌توانید پارامترهای Query مثل page، limit، search، role، country، sort و order را تغییر بدهید و نتیجه را ببینید.
    • زبان پاسخ (fa / en)، تأخیر پاسخ (delay) و کد وضعیت HTTP (status) را هم می‌توانید برای تست سناریوهای مختلف تغییر بدهید.
    • عملیات ایجاد، ویرایش و حذف داده‌ها هم از داخل همین محیط قابل انجام است.
    • نتیجه هر درخواست بلافاصله در همان صفحه نمایش داده می‌شود.

    بیشتر بدانید

    • داده‌های API به‌صورت پیش‌فرض انگلیسی هستند و با اضافه کردن lang=fa می‌توانید نسخه فارسی آن‌ها را دریافت کنید.
    • پاسخ‌های فارسی شامل داده‌ها و اطلاعات مربوط به زبان فارسی هستند.
    • این قابلیت برای لیست داده‌ها، جزئیات و endpointهای مربوط به ورود هم در دسترس است.
    • با تغییر زبان سایت به فارسی، محیط تست هم به‌صورت خودکار درخواست‌ها را با lang=fa ارسال می‌کند.

    بیشتر بدانید

    • منبع و نوع درخواست را انتخاب کنید و درخواست را مستقیماً ارسال کنید.
    • برای endpoint ورود، می‌توانید رمز صحیح یا اشتباه را برای تست سناریوهای مختلف انتخاب کنید.
    • کد وضعیت، زمان پاسخ و JSON دریافتی بلافاصله در همان صفحه نمایش داده می‌شوند.
    • آخرین درخواست و پاسخ هر منبع هنگام جابه‌جایی بین صفحات حفظ می‌شوند، اما با رفرش کامل صفحه از بین می‌روند.

    بیشتر بدانید

    • رمز عبور همه کاربران نمونه password است.
    • در صورت ورود موفق، توکن احراز هویت و اطلاعات کاربر در پاسخ برگردانده می‌شود.
    • اگر رمز عبور اشتباه باشد یا کاربر وجود نداشته باشد، API با وضعیت 401 پاسخ می‌دهد.
    • برای دسترسی به /me، توکن دریافتی را در هدر Authorization به‌صورت Bearer ارسال کنید.

    بیشتر بدانید

    • endpointهای لیست، داده‌ها را همراه با اطلاعات صفحه‌بندی برمی‌گردانند.
    • جستجو، مرتب‌سازی و فیلتر برای منابع مختلف در دسترس است.
    • این APIها برای توسعه، تست و تمرین مناسب هستند.
    • مشخصات کامل API در قالب OpenAPI از مسیر /openapi.json در دسترس است.

    بیشتر بدانید

API موقت

اگر برای تست به یک API موقت با داده‌های JSON خودتان نیاز دارید، می‌توانید از API موقت استفاده کنید. JSON خودتان را وارد کنید، مدت اعتبار را انتخاب کنید و یک آدرس عمومی در مسیر /api/t/... دریافت کنید. از بخش «مولد داده» هم می‌توانید داده‌های ساخته‌شده را با گزینه «ساخت API» منتشر کنید.

  • برای ساخت API نیازی به حساب کاربری نیست. از /temporary یا گزینه «ساخت API» در /generator استفاده کنید.
  • مدت اعتبار را می‌توانید ۱، ۶، ۱۲ یا ۲۴ ساعت انتخاب کنید. مقدار پیش‌فرض ۱۲ ساعت است.
  • با همان آدرس می‌توانید داده‌ها را دریافت، ایجاد، ویرایش و حذف کنید.
  • لینک API را مثل یک اطلاعات خصوصی در نظر بگیرید. هر کسی که به آن دسترسی داشته باشد، تا زمان انقضا می‌تواند داده‌ها را مشاهده یا تغییر دهد.
  • بعد از انقضا، درخواست‌ها با وضعیت HTTP 410 پاسخ داده می‌شوند.

محدودیت‌های API موقت

  • حداکثر ۵ API موقت فعال برای هر مرورگر.
  • حداکثر ۲۰ API در هر ساعت برای هر IP. در صورت عبور از این محدودیت، پاسخ 429 دریافت می‌کنید.
  • حداکثر حجم JSON برابر با ۶۴ کیلوبایت است.
  • حداکثر عمق داده‌های تو در تو ۸ سطح است. آرایه‌ها حداکثر ۵۰۰ آیتم و هر آبجکت حداکثر ۲۰۰ کلید می‌تواند داشته باشد.
  • محدودیت کلی API هم اعمال می‌شود و هر IP حدود ۶۰ درخواست در دقیقه می‌تواند ارسال کند.

مولد داده

برای ساخت داده‌های تستی بدون نوشتن دستی fixture، از مولد داده استفاده کنید. نوع داده، فیلدها و تعداد رکوردها را انتخاب کنید و نتیجه را کپی، دانلود یا به یک API موقت تبدیل کنید.

  • در /generator می‌توانید داده‌هایی برای افراد، فروشگاه، محتوا، رسانه، کسب‌وکار و مکان بسازید.
  • خروجی را می‌توانید به‌صورت بدنه POST یا رکورد API دریافت کنید. در حالت رکورد API، فیلدهایی مثل id، createdAt و updatedAt هم اضافه می‌شوند.
  • اگر زبان سایت فارسی باشد، داده‌های تولیدشده هم فارسی خواهند بود. در حالت انگلیسی، داده‌ها از مجموعه‌های مختلف و متنوع تولید می‌شوند.
  • حداکثر ۱۰۰۰ رکورد می‌توانید بسازید. برای ساخت API، محدودیت‌های API موقت اعمال می‌شوند: حداکثر ۵۰۰ آیتم یا ۶۴ کیلوبایت.
  • انتخاب‌ها و نتیجه هنگام جابه‌جایی بین صفحات سایت حفظ می‌شوند، اما با رفرش کامل صفحه از بین می‌روند.

مولد داده

مولد تصویر

برای تصاویر پروژه می‌توانید از SVGهای MockData یا تصاویر واقعی تصادفی با ابعاد دلخواه استفاده کنید. لینک تصویر را مستقیماً در img، CSS یا هر فیلدی که برای تصویر در نظر گرفته شده قرار دهید.

  • از /image-generator حالت SVG یا تصویر واقعی را انتخاب کنید.
  • آدرس عمومی: /image/{width}/{height} برای SVG؛ برای عکس واقعی ?type=real را اضافه کنید.
  • به‌صورت پیش‌فرض تصادفی است. با ?seed= می‌توانید همان رنگ SVG یا همان عکس را ثابت نگه دارید.
  • سایزهای آماده برای آواتار، بندانگشتی، پروفایل، پست، کاور، بنر و استوری.
1<!-- SVG placeholder -->2<img src="https://mockdata.ir/image/800/600" alt="Placeholder" />3 4<!-- Real photo -->5<img src="https://mockdata.ir/image/800/600?type=real" alt="Photo" />

تصاویر

میزکار JSONدر حال توسعه

میزکار JSON (در حال توسعه): یک فضا در مرورگر برای کار روزمره با JSON موقع ساخت UI — فرمت، مقایسه، جستجو و تبدیل، بدون ترک MockData.

  • میزکار JSON را از /json باز کنید و ابزار را انتخاب کنید؛ فضای کاری همان‌جا عوض می‌شود (اشتراک با ?tool=).
  • اصلی: فرمت، درخت، جستجو، JSONPath و مقایسه ساختار.
  • تبدیل: TypeScript، Zod، JSON Schema، YAML و CSV.
  • ابزارها: مرتب‌سازی کلید، حذف خالی‌ها، flatten، escape، ترمیم، pick/omit و بیشتر.
  • همه‌چیز در مرورگر اجرا می‌شود؛ JSON به سرور نمی‌رود.
  • هنوز در حال توسعه است — ابزارها و جزئیات بیشتری اضافه می‌شود.

میزکار JSON

داده‌های مشترک

منابع اصلی MockData از یک دیتابیس مشترک استفاده می‌کنند. تغییراتی که در داده‌ها ایجاد می‌کنید برای سایر کاربران هم قابل مشاهده است. این داده‌ها برای تست و دمو هستند و برای نگهداری دائمی طراحی نشده‌اند.

زبان داده‌ها

پاسخ APIها به‌صورت پیش‌فرض انگلیسی است. برای دریافت داده‌های فارسی، پارامتر lang=fa را به درخواست اضافه کنید.

  • با اضافه کردن lang=fa به Query، پاسخ API به فارسی برمی‌گردد.
  • با انتخاب «فارسی» از سوییچر زبان در هدر، زبان رابط کاربری و داده‌های محیط تست هم به فارسی تغییر می‌کند.
  • در حالت فارسی، رابط کاربری راست‌چین می‌شود و داده‌های نمونه نیز به‌صورت فارسی نمایش داده می‌شوند.
1// Persian sample data — English is default2const res = await fetch('/api/users?limit=3&lang=fa');3const { data, font } = await res.json();4// font.cssUrl → Vazirmatn stylesheet for Persian text5console.log(data, font);
1# Same with curl2curl "http://localhost:3000/api/users?limit=3&lang=fa"

منابع

APIهای فعال و آماده استفاده در MockData.

#منبعمسیروضعیتصفحه
1
احراز هویت
Auth
/api/authفعال
2
کاربران
Users
/api/usersفعال
3
پست‌ها
Content
/api/postsفعال
4
نظرات
Content
/api/commentsفعال
5
آلبوم‌ها
Media
/api/albumsفعال
6
عکس‌ها
Media
/api/photosفعال
7
کارها
Productivity
/api/todosفعال
8
محصولات
Commerce
/api/productsفعال
9
اعلان‌ها
Engagement
/api/notificationsفعال
10
کشورها
Geo
/api/countriesفعال

OpenAPI

مشخصات کامل APIها و Endpointها در قالب OpenAPI برای استفاده در Postman، Swagger و ابزارهای مشابه.

1# Import into Postman / Insomnia / Swagger2curl -O http://localhost:3000/openapi.json

شکل پاسخ

در پاسخ لیست‌ها، داده‌ها در data و اطلاعات صفحه‌بندی در pagination قرار دارند. برای دریافت یک آیتم، پاسخ شامل data است.

1{2  "data": [3    {4      "id": "1",5      "title": "Hello MockData",6      "published": true7    }8  ],9  "pagination": {10    "page": 1,11    "limit": 6,12    "total": 42,13    "totalPages": 714  }15}
1{2  "data": {3    "id": "1",4    "title": "Hello MockData",5    "published": true6  }7}

خطاها

خطاها در آبجکت error برگردانده می‌شوند. برای مثال، 400 برای ورودی نامعتبر، 401 برای ورود ناموفق، 404 برای مورد پیدا‌نشده، 429 برای عبور از محدودیت درخواست و 500 برای خطای سرور استفاده می‌شود. برای تست حالت‌های خطا در UI، می‌توانید با اضافه کردن ?status=500 به درخواست، یک خطای ساختگی دریافت کنید.

1{2  "error": {3    "code": "NOT_FOUND",4    "message": "Post not found"5  }6}

سقف درخواست

برای اینکه استفاده از APIها برای همه عادلانه باشد، هر IP در هر دقیقه حدود 60 درخواست می‌تواند به /api/* ارسال کند. اگر از این حد عبور کنید، سرور پاسخ 429 برمی‌گرداند؛ یعنی تعداد درخواست‌ها بیش از حد مجاز بوده است. در هدرهای X-RateLimit هم می‌توانید تعداد درخواست‌های باقی‌مانده را ببینید.

1{2  "error": {3    "code": "RATE_LIMITED",4    "message": "Too many requests. Try again in 42s."5  }6}

بازنشانی داده

داده‌های نمونه بین کاربران مشترک هستند و روی سایت اصلی، هر ۲۴ ساعت یک‌بار به حالت اولیه برمی‌گردند. اگر رمز ادمین را دارید، می‌توانید از فرم زیر برای پاک‌کردن داده‌ها و بارگذاری دوباره داده‌های پیش‌فرض استفاده کنید.