هدلس

می‌توانید ویترو بلاگ را به‌عنوان CMS هدلس به کار ببرید: محتوا را در ویترو بلاگ بنویسید و مدیریت کنید، اما وبلاگ را با چارچوب خودتان (مانند Next.js، SvelteKit یا Astro) یا در برنامهٔ موبایل نمایش دهید.

این صفحه نمای کلی روش کار است، نه آموزش گام‌به‌گام. فهرست کامل endpointها و پارامترها در مرجع Data API آمده است.

چرا هدلس؟

  • از قبل وب‌سایت یا برنامه دارید و می‌خواهید نوشته‌های وبلاگ با همان دامنه و طراحی نمایش داده شوند.
  • به کنترل کامل مسیرها، چیدمان و رندر نیاز دارید؛ فراتر از امکانات پوسته‌ها.
  • برای برنامهٔ موبایل یا کلاینتی غیر از وب به محتوای وبلاگ نیاز دارید.

اگر فقط ظاهر متفاوتی برای وبلاگ می‌خواهید، ساخت پوستهٔ سفارشی ساده‌تر است. حالت هدلس زمانی مناسب است که وبلاگ بخشی از برنامهٔ موجود شما باشد.

روش کار

  1. در ویترو بلاگ وبلاگ بسازید و نوشته‌ها، برچسب‌ها و نویسندگان را مدیریت کنید.
  2. برنامهٔ شما داده‌ها را هنگام ساخت یا درخواست با Data API دریافت می‌کند؛ این API عمومی و فقط‌خواندنی است.
  3. برنامه با مؤلفه‌ها، مسیرها و استایل‌های خودش صفحه‌ها را می‌سازد.

برای Data API به کلید API نیاز نیست؛ می‌توانید آن را از مرورگر، سرور یا هنگام ساخت سایت ایستا فراخوانی کنید.

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

از endpoint مربوط به /posts استفاده کنید:

const res = await fetch('https://blog.taptik.ir/api/data/v0/example/posts?limit=10');
const { data: posts, pagination } = await res.json();

// posts[0] -> { id, slug, title, description, published_at, url, tags, authors, ... }

برای دریافت فیلدهای لازم به‌جای HTML کامل محتوا از پارامتر keys استفاده کنید:

/posts?keys=id,slug,title,description,published_at,featured_image_url,tags

صفحه‌بندی، فیلتر و مرتب‌سازی در Data API توضیح داده شده‌اند.

دریافت یک نوشته

با slug یا شناسه از endpoint /post دریافت کنید:

const res = await fetch('https://blog.taptik.ir/api/data/v0/example/post?slug=hello-world');
const post = await res.json();

// post.content is sanitized HTML, ready to render

فیلد content خروجی HTML ویرایشگر و پاک‌سازی‌شده است. در Svelte می‌توانید از {@html post.content} و در React از dangerouslySetInnerHTML استفاده کنید. نشانی تصویرها و رسانه‌ها مطلق است.

مسیریابی

چون از پوستهٔ ویترو بلاگ استفاده نمی‌کنید، ساختار URL را خودتان تعیین می‌کنید. برای نمونه، مسیر /blog/[slug] می‌تواند از /post?slug=... داده بگیرد و مسیر /blog فهرست را با /posts بسازد. تغییر مسیرها، مسیرهای سفارشی و سئوی پوسته خودکار اعمال نمی‌شوند؛ خودتان سئو، نقشهٔ سایت و تغییر مسیرها را مدیریت کنید.

دریافت هنگام ساخت یا درخواست

  • مولد سایت ایستا: هنگام ساخت از /posts داده بگیرید و برای هر نوشته صفحه بسازید. با وب‌هوک می‌توانید پس از تغییر محتوا ساخت مجدد را اجرا کنید.
  • برنامهٔ رندرشده در سرور یا مرورگر: Data API را هنگام درخواست فراخوانی کنید. احراز هویت نمی‌خواهد و پاسخ JSON آن قابلیت کش دارد.

وب‌هوک‌ها را برای آگاهی از انتشار یا ویرایش به کار ببرید تا کش را پاک کنید یا سایت را دوباره بسازید، به‌جای آنکه API را پیوسته بررسی کنید.

چند زبان

اگر وبلاگ چندزبانه است، پارامتر language را در درخواست فهرست و نوشته بفرستید. از آرایهٔ variants برای ساخت پیوندهای تعویض زبان استفاده کنید.

ساختار نمونه

  • محتوا در ویترو بلاگ نوشته و منتشر می‌شود.
  • فرانت‌اند با هر چارچوبی از Data API داده می‌گیرد.
  • میزبانی وب‌سایت شما مستقل از ویترو بلاگ است.