سیستم مدیریت محتوا (Content Management System یا به اختصار CMS) به دو نوع Coupled و Decoupled تقسیم میشود که نوع دوم گاهی هم تحت عنوان اصطلاحاً Headless شناخته میشود که در این پست قصد داریم به تعریف، کاربردها و مزایای سیاماسهایی از این نوع بپردازیم.
در واقع، منظور از سیاماسهای Coupled همان معماری سنتی یا یکپارچۀ سیستمهای مدیریت محتوا است که در آنها امکان مدیریت محتوا در بخش بکاند و همچنین نمایش محتوا در فرانتاند از طریق یک سیاماس یکپارچه فراهم میشود که از آن جمله میتوان سیستمهای مدیریت محتوای وردپرس، دروپال و جوملا را نام برد.
اساساً چنین سیاماسهایی این امکان را در اختیار دولوپرها قرار میدهند تا به راحتی محتوای وبسایت خود را ایجاد و ویرایش کرده و در دیتابیس ذخیره کنند و همچنین در قسمت فرانتاند نیز برای کاربر به نمایش درآورند مضاف بر اینکه سیاماسهای معمول همچون وردپرس امکان شخصیسازی و استایلدهی در قسمت فرانتاند وبسایت را برای وبمسترها فراهم میکنند (گرچه این قابلیت در قالب یکسری فرمتهای از پیش تعیینشده و محدود ارائه میشود.)
سیستمهای مدیریت محتوای سنتی در رابطه با یکپارچهسازی فرمتهای ایجاد و نمایش محتوا به کاربر از انعطافپذیری پایینی برخوردار هستند. برای مثال، در صورت نیاز به افزودن قابلیتهای جدید و متناسب با دیوایسی همچون موبایل، سیستمهای مدیریت محتوایی از این دست آنطور که باید و شاید کارایی ندارند و به همین دلیل هم باید به دنبال سولوشن دیگری رفت تحت عنوان Headless CMS که در ادامه بیشتر با فیچرهای این سیاماسها آشنا خواهید شد.
سیستم مدیریت محتوای Headless چیست؟
واژۀ Headless به صورت کلی اشاره به عدم برخورداری این سیاماسها از بخش نمایش محتوا در سمت فرانتاند دارد. در واقع، یک سیستم مدیریت محتوای هِدلِس که به اصطلاح Decoupled نیز نامیده میشود، عمدتاً از یک API و سیستم مدیریت بکاند مورد نیاز برای ذخیره و ارائهٔ محتوا تشکیل شده است و امکانی را برای دولوپرها فراهم میکند تا محتوا را به عنوان یک سرویس (CaaS) به سایر اپلیکشنهای فرانتاند ارائه دهند بدین معنا که ذخیره و تحویل محتوا به کاربران در بخش فرانتاند توسط سرویسی مجزا هندل میشود (البته در عین حال دو اصطلاح Headless و Decoupled تفاوتهایی با یکدیگر دارند که در ادامۀ این مقاله به بررسی آنها میپردازیم.)
همانطور که اشاره کردیم، پلتفرمهای مدیریت محتوای هِدلِس قابلیت تحویل محتوا به بخش فرانتاند وبسایت همچون تِمپلِیتهای نمایش محتوا به کاربران را ندارند و بر خلاف معماری سیاماسهای سنتی که هم بکاند و هم فرانتاند را مدیریت میکنند، سیاماسهای Headless امکانی را برای وب دولوپرها فراهم میکنند تا بدین وسیله کنترل کاملی بر نحوۀ نمایش محتوا به کاربر داشته باشند. همچنین هِدلِس سیاماس که مستقل از قسمت فرانتاند است، امکان ادغام با کدبیسهای مختلف را دارا است به طوری که دولوپرها میتوانند از زبان و تکنولوژی مد نظر خود در قسمت فرانتاند استفاده کنند و در صورت نیاز به راحتی آن را تغییر دهند.
از یک دید فنی، سیاماسهای هِدلِس به سادگی یک API در اختیار دولوپرها میگذارند تا از طریق آن بتوانند با سرویس بکاند ارتباط برقرار کرده و دیتای مد نظر خود را فراخوانی کنند و به هر شکلی که نیاز داشتند آن را در معرض دید کاربران قرار دهند. بنابراین میتوان گفت که معماری هِدلِس شامل هیچ تکنولوژی مدیریت محتوایی در سمت فرانتاند نیست و محتوا برای انتشار به یک ایپیآی یا وب سرویس داده میشود که توانایی انتقال محتوا را به انواع دیوایسهای هوشمند دارند. به طور خلاصه، سیاماسهای هِدلِس از دو بخش اصلی تشکیل شدهاند که عبارتند از:
- تکنولوژی مدیریت محتوا در سمت بکاند
- و یک ایپیآی یا وب سرویس برای عرضهٔ محتوا در قالب جیسون یا دیگر انواع دادهها
با استفاده از Headless CMS چه چیزهایی میتوان ایجاد کرد؟
در پاسخ به این پرسش، میتوان گفت با استفاده از سیستم مدیریت محتوای هِدلِس میتوان اپلیکیشنهایی در طیف متنوعی ایجاد کرد که برخی از مهمترین آنها عبارتند از:
- ساخت وبسایت استاتیک
- ساخت اپلیکیشنهای دینامیک (پویا) با بهکارگیری زبانهای مختلف از جمله CSS ،HTML ،PHP و JavaScript
- ساخت Single Page Application یا به اختصار SPA در پلتفرمهایی نظیر React ،Angular یا Vue (برای آشنایی بیشتر SPA توصیه میکنیم به این لینک مراجعه نمایید.)
- ساخت اپلیکیشنهای نیتیو برای پلتفرمهای iOS ،Android و یا React Native
آشنایی با تفاوتهای بین Decoupled CMS و Headless CMS
پیش از این گفتیم که سیاماسهای Headless با سیاماسهای Decoupled تفاوتهایی دارند. در واقع، هِدلِس سیاماسها یکسری ابزار به منظور ایجاد و ویرایش محتوا برای وبمسترها فراهم میکنند اما این در حالی است که انتشار محتوا صرفاً با استفاده از یک API محقق میشود و در اینگونه سیاماسها فرض بر این است که نمایش محتوا به کاربران توسط یک تیمی مستقل از فرانتاند دولوپرها و با بهکارگیری ابزارها و فریمورکهای مد نظرشان انجام میشود.
در مقابل، سیاماسهای Decoupled هم برخی فیچرهای سیاماسهای Headless را دارند و هم بخشی از قابلیتهای سیستمهای مدیریت محتوای Coupled را به طوری که در این سیستمها نیز محتوا از طریق یک API در اختیار سایر سرویسها قرار میگیرد اما در عین حال همچون سیاماسهای سنتی که علاوه بر بخش مدیریت محتوا بخشی نیز برای نمایش محتوا دارند، در سیستمهای مدیریت محتوای Decoupled یکسری تِمپلِیتهای از پیش تعریف شده نیز در اختیار دولوپر قرار داده میشود تا وی بتواند بسته به شرایط مختلف و نیازهای گوناگونی که در عرضهٔ محتوا در قالب پلتفرمهای مختلف پیش میآید، محتوا را به شکل مناسبی در اختیار دیگر سرویسها قرار دهد. به عبارتی، همانند سیستمهای مدیریت محتوای معمول همچون وردپرس هستند با این تفاوت که دست دولوپر در نحوهٔ نمایش محتوا به مراتب بازتر است.
سخن پایانی
روی هم رفته، مزیت عمدۀ یک سیستم مدیریت محتوای هِدلِس این است که با استفاده از API میتوان محتوا را در قالبهای مختلف، از وبسایت گرفته تا اپ موبایل و غیره، منتشر کرد به طوری که سیاماسهای هِدلِس امکان عرضهٔ محتوا در جهت تحویل آن در قالب فرمتهای مختلف را آسانتر میکنند چرا که محتوا به یک ساختار از پیش تعیینشده محدود نمیشود و از همین روی ارائۀ محتوا به کاربر میتواند به روشهای مختلفی انجام شود که از آن جمله میتوان استفاده از فریمورکهای جاوااسکریپتی همچون آنگولار، سایتسازهای استاتیک، اپلیکیشنهای موبایل و یا حتی ارائۀ محتوا از طریق یک سیاماس دیگر را نام برد.
در پایان نیز برای آشنایی بیشتر با برخی از مهمترین انواع سیاماسهای هِدلِس و مقایسهٔ آنها با یکدیگر میتوانید به سایت HeadlessCMS مراجعه نمایید.