به محتوای اصلی

قالب‌های آماده

هر قالب یک مدل داده‌ی کامل است، نه یک نمونه‌ی نمایشی — و پیش از ساخت دقیقاً می‌بینید چه تحویل می‌گیرید.

وبلاگ / مجله

اسپرسو

نوشته و دسته‌بندی عمومی، نظر و نشان‌شده‌های کاربر — بک‌اند یک مجلهٔ محتوایی.

۵ موجودیت، ۳ قانون آماده، ۱۱ رکورد نمونهٔ فارسی — API، مستندات و کلید همان لحظه ساخته می‌شوند.

  • وبلاگ شخصی یا مجلهٔ تیمی
  • بخش محتوای یک اپ موبایل
  • بلاگ چندنویسنده با نظر کاربران

مدل داده

دسته‌بندی

عمومی/v1/category
  • nameناممتنضروری
  • slugنشانیمتنضروری
  • descriptionتوضیحمتن

یک ردیف واقعی از دادهٔ نمونه(۲ ردیف)

نام
برنامه‌نویسی
نشانی
programming
توضیح
یادداشت‌های فنی و تجربه‌های کدنویسی

برچسب

عمومی/v1/tag
  • nameناممتنضروری
  • slugنشانیمتنضروری

یک ردیف واقعی از دادهٔ نمونه(۲ ردیف)

نام
Go
نشانی
go

نوشته

عمومی/v1/post

مطالب منتشرشده — عمومی، همان چیزی که خواننده بدون ورود می‌بیند

  • titleعنوانمتنضروری
  • slugنشانیمتنضروری
  • excerptخلاصهمتن
  • contentمحتوا (Markdown)متن
  • coverتصویر شاخصفایل
  • author_idنویسندهمتن
  • category_idدسته‌بندیمتن
  • statusوضعیتگزینه‌ای= "published"
  • published_atتاریخ انتشارتاریخ
  • view_countبازدیدعدد= 0
  • comment_countتعداد نظرعدد= 0
  • editor_noteیادداشت سردبیرمتنپنهان
  • read_timeزمان مطالعه (دقیقه)محاسبه‌شده

یک ردیف واقعی از دادهٔ نمونه(۳ ردیف)

عنوان
چرا بک‌اند نوشتن برای یک اپ کوچک این‌قدر طول می‌کشد
نشانی
why-backend-takes-long
خلاصه
سه هفته برای چیزی که قرار بود دو روز باشد — و اینکه وقت دقیقاً کجا می‌رود.
محتوا (Markdown)
هر بار که یک اپ کوچک می‌سازیم، تخمین اولیه دو روز است و نتیجه سه هفته. دلیلش نوشتن CRUD نیست؛ چیزهایی است که کسی در تخمین حسابشان نمی‌کند: احراز هویت، صفحه‌بندی، اعتبارسنجی ورودی، مستندسازی، و آن نیم‌روزی که صرف فهمیدن یک خطای CORS می‌شود.

نظر

عمومی/v1/comment

نظرها — عمومی خوانده می‌شوند، ولی هرکس فقط نظر خودش را ویرایش یا حذف می‌کند

  • post_idنوشتهمتنضروری
  • author_idنویسندهٔ نظرمتن
  • display_nameنام نمایشیمتن
  • bodyمتن نظرمتنضروری

یک ردیف واقعی از دادهٔ نمونه(۳ ردیف)

نام نمایشی
سارا
متن نظر
دقیقاً همین! بخش مستندسازی همیشه از تخمین جا می‌ماند.

نشان‌شده

فقط صاحب رکورد/v1/bookmark

نوشته‌هایی که خواننده ذخیره کرده — فقط خودش می‌بیند

  • user_idکاربرمتن
  • post_idنوشتهمتنضروری
  • noteیادداشتمتن

یک ردیف واقعی از دادهٔ نمونه(۱ ردیف)

یادداشت
برای بازخوانی موقع پیاده‌سازی صفحه‌بندی

اولین درخواست

خواندن فهرست نوشته‌ها

نوشته‌ها، دسته‌بندی‌ها و نظرها عمومی‌اند — اپ بدون ورود کاربر می‌تواند کل مجله را نشان بدهد.

npm install @fikaro/client
import { createClient } from "@fikaro/client";

const client = createClient({
  project: "{{slug}}",
  key: "{{publishable_key}}",
});

// فهرست نوشته‌ها با نویسنده و دسته‌بندی
const { data: posts } = await client.from("post").list({
  filter: { status: "published" },
  sort: "-published_at",
  include: "author,category",
});

// نشان‌کردن یک نوشته نیازمند ورود کاربر است
await client.auth.login("reader@example.com", "«رمزی که هنگام ساخت پروژه دیدید»");
await client.from("bookmark").create({ post_id: posts[0].id });

کلید عمومی فقط می‌خواند و فقط موجودیت‌های عمومی؛ برای گذاشتنش داخل اپ امن است. «نشان‌شده‌ها» فقط برای خود کاربر است و به توکن ورود نیاز دارد. نوشتن نظر هم نیازمند ورود است، چون هر نظر به نویسنده‌اش گره می‌خورد.

قوانین آماده

  • ثبت تاریخ انتشارتریگر شرطیpost
  • شمارش نظر روی نوشتهتریگر شرطیcomment
  • الزام خلاصه برای نوشتهٔ بلنداعتبارسنجیpost

راهنماهای همراه این قالب

  • فهرست نوشته‌ها برای صفحهٔ اصلیGET /v1/post
  • نظر گذاشتنPOST /v1/comment
  • نشان‌کردن یک نوشتهPOST /v1/bookmark