ساخت و توسعه بک اند با استرپی

استرپی - Strapi CMS
استرپی - Strapi CMS

سلام، خیلی وقت بود مطلبی منتشر نکرده بودم. استرپی یک سیستم مدیریت محتوا بصورت هدلس / Headless هست که این اصطلاح بدون سر برمیگرده به اینکه فقط سمت بک اند کار میکنه و فرانت رو باید با REST-API توسعه بدین. ( استرپی نمره اول هدلس ها رو داره )

چیزی نیست که نشه با این سیستم توسعه داد!

یادمه یجا در سایت تقریبا معروفی یکی سوال کرده بود که با استرپی میشه فروشگاه آنلاین راه اندازی کرد!؟ و جوابی که بهش داده بودن این بود که: داداش برو با ووکامرس فروشگاه بزن این به کارِت نمیاد!!!

زیاد از جوابی که خوندم تعجب نکردم چون اکثر ما ایرانی ها دُگم هستیم و حاضر به استفاده یا امتحان چیزای جدید نیستیم.

چیزی که هست درسته وردپرس و ووکامرس معروف هستن و تقریبا نیمی از وب سایت ها رو فرا گرفتن ولی ایراداتی داره که شاید روزها یا ماه‌ها یا شایدم سال‌های اول به چشم نیاد و اون هم عدم مقیاس پذیری هست!

همون طور که از اسمش معلومه وردپرس جهت نوشتن اخبار و مقاله توسعه داده شد. بعدها با پیشرفت این صنعت با افزونه ها و ... وردپرس تبدیل شد به چیزی که حالا ازش استفاده می کنیم.

یک وب سایت با رشد کردن و شاخ و برگ گرفتن روی بستر وردپرس باگ ها و خطاها یکی پس از دیگری خودشون رو نشون میدن و حالت مقیاس پذیری رو از دست میده!


استرپی / Strapi CMS

علاقه مندان به حوزه برنامه نویسی وب نیم نگاهی به این سیستم قدرتمند داشته باشن تا بشه عضو همیشگی پروژه هاشون. کار با این سیستم به شدت آسون و تقریبا بدون نوشتن یک خط کدنویسی. مگر اینکه کارهایی بخواین انجام بدین که نیاز به کدنوشتن باشه مثلا هوک یا یه دایرکتیو که یکاری انجام بده.

نصب و اجرا

خب با توجه به اینکه استرپی از نود جی اس استفاده میکنه باید اول نود جی اس رو نصب داشته باشین که پیشنهاد خودش نسخه LTS هست که در حال حاضر نسخه 20 رو میتونین در نظر بگیرین چون با نسخه های بالاتر سازگاری نداره و به مشکل میخورین.

یک دیتابیس هم نیاز دارین که از بین MySQL - MariaDB - PostgreSQL - SQLite حق انتخاب دارین که البته بهتره سراغ SQLite نرید چون این دیتابیس جهت تست هست و به درد استفاده در سرور در آینده برای دیپلوی پروژه روی سرور نمیخوره.

پیشنهاد استرپی جهت استفاده از دیتابیس و نسخه ها
پیشنهاد استرپی جهت استفاده از دیتابیس و نسخه ها

دستور NPM برای نصب:

npx create-strapi@latest

طی فرایند نصب یک سری سوال‌ها میپرسه که طبق نیاز خودتون پیکربندی می‌کنین.

بعد از فرایند نصب پیشنهاد من اینه که یک بار دستور:

npm run develop

رو اجرا کنین و بعد از اینکه کاربری رو ایجاد کردین خارج بشین. و با کلیدهای CTRL + C در ترمینال پروژه رو متوقف کنین و یه سری کار نیازه انجام بدین:

در روت پروژه خودتون دو فایل env قرار داره که یکیش example هست که بهتره پاک کنین. فایل README هم کلا به دردتون نمیخوره پاک کنین. اگر طی فرایند نصب TypeScript رو انتخاب کردین فایلی به نام tsconfig.json در روت پروژه قرار داره که اگر نیازه با JavaScript هم کار کنین در یک جایی از فایل این عبارت رو وارد بکنین:

"allowJs": true

ترمینال رو باز کنین و داخل روت پروژه بشین و یک سری پلاگین کارامد هست که پیشنهاد میدم نصب کنین:

@_sh/strapi-plugin-ckeditor

@sklinet/strapi-plugin-content-tags

@strapi/plugin-color-picker

@strapi/provider-email-nodemailer

strapi-advanced-uuid

همه رو با یک npm i میتونین یکجا نصب کنین. در فایل های پروژه دایرکتوری config و سپس plugins.ts/js رو با یک ادیتور باز کنین و اگر میخواین ایمیل رو تنظیم کنین همین طور که قبلا @strapi/provider-email-nodemailer نصب کردیم نیاز به پیکربندی و تنظیمات داریم.

حالا این تنظیمات رو ذخیره کنین و برگردین به روت پروژه و فایل env رو ویرایش کنین و در انتهای فایل:

من پیشنهادم استفاده از Gmail هست که نیازه احراز هویت دو مرحله ای رو برای اکانتتون از قبل فعال کرده باشین و با gmail app password میتونین یک رمز عبور برای SMTP بسازین.

حالا نیاز هست به ویرایش فایل middleware.ts/js که داخل دایرکتوری config قرار داره. فایل رو با یه ادیتور باز کنین:

با این تنظیمات اول مشکل CORS رو برای فرانت حل میکنیم و بعد با قرار دادن favicon.png در دایرکتوری uploads می تونیم آیکن رو قرار بدیم و جلوگیری کنیم از آیکن پیشفرض. دقت داشته باشین من اینجا از

http://localhost:3000

استفاده کردم که پیشفرض Nuxt هست شما باید به URL مورد نظر خودتون تغییرش بدین.

آخرین کاری که باید انجام بدین ویرایش فایل app.example.ts/js هست که اول باید example رو پاک کنین تا بشه app.ts/js و با یه ادیتور بازش کنین:

همین طور که مشخص هست اینکار مانع از نمایش قسمت آموزش و اعلانات نسخه نصبی میشه.


تا اینجا تونستیم استرپی و نصب و پیکربندی کنیم و حالا می تونین توی دنیای استرپی سیر کنین و هرچیزی که به فکرتون میرسه رو راحت پیاده سازی کنین.

اگر سوالی دارین کامنت بذارین در اسرع وقت جواب میدم.