Strapi Nedir ? Strapi&Vue.js İle Proje Geliştirme

Kadriye Aksakal
4 min readMay 18, 2022
Vue.js & Strapi

Herkese Selamlar 👋🏻 Bu yazımda sizlere öncelikle kısaca Strapi nedir, ne için kullanırız ve avantajları nelerdir bunlardan bahsedeceğim daha sonra Strapi & Vue.js ile başlangıç seviyesinde proje geliştirme aşamalarından ve karşılaştığım küçük problemleri nasıl çözdüğümden bahsedeceğim. Umarım sizler için hem yararlı hem de keyifli bir içerik olur :) Vakit kaybetmeden başlayalım.

Strapi Nedir ?

Kısaca Strapi nedir bundan bahsedeyim. Strapi Node.js tabanlı bir İçerik Yönetim Sistemidir (CMS(Content Management System)). Wordpress’e benzer bu konuda fakat Wordpress’ten ayrılan özelliği bir site oluşturmak yerine API oluşturur. Oluşturduğumuz bu API’yi web, masaüstü ve mobil olmak üzere birçok yerde kullanabiliriz.

Neden Strapi Kullanırız ?

  1. Kolay ve hızlı proje çıkarma : Node.js tabanlı olduğu için performansı yüksektir bu sayede kısa sürede az maliyetle proje çıkarılabilir.
  2. Özelleştirme: Node.js tabanlı olduğu için yeterli bilgi ve deneyiminiz var ise arkaplanda özelleştirebilirsiniz bunun için imkan sağlıyor.
  3. Açık kaynak kodlu: Açık kaynak olmasının en büyük avantajı kodların herkes tarafından görülebilir olması ve bu sayede ürün geliştirmenin daha etkili bir şekilde gerçekleştirilmesi.

Strapi’nin Avantajları

Strapi’nin kullanılmasının en büyük avantajı backend bilgisine sahip değilseniz veya backend bilginiz var ama yazacağınız API için vaktiniz yoksa kısa ve güvenli bir şekilde API’ler oluşturup kullanmanıza olanak tanır. Bu sayede kısa sürede az maliyetli güvenli uygulamalar çıkartabilirsiniz.

Strapi’yi Vue.js Projemize Dahil Etme

Daha önceden oluşturmuş olduğunuz Vue.js projemiz için öncelikle Strapi ile proje oluşturuyoruz. Ben projelerimde yarn kullanıyorum buna göre ilerliyorum.

Strapi proje oluşturma

Proje kurulumu bu kadar basit tek dikkat etmeniz gereken Node.js versiyonunuzun uygun olması. Daha sonra yarn develop komutunu çalıştırıp projenizi ayağa kaldırabilirsiniz.

yarn develop komutu çıktısı

Komut çalıştıktan sonra karşınıza bu url çıkıyor ve üzerine tıklayarak projenizi açabilirsiniz. Açılan ekranda karşınıza bir kayıt olma ekranı çıkıyor ekrandaki bilgileri doldurarak admin paneline üye olabilir ve giriş yapabilirsiniz böylelikle admin panele erişim sağlayabilirsiniz.

admin paneli ana sayfa

Açılır sol menüde yer alan Content-Type Builder ile projeniz için gerekli collectionları oluşturabilirsiniz.

Content-Type Builder

Sizler için örnek olması açısından yazı sonunda ekleyeceğim örnek blog projem için böyle bir collection hazırladım. Şimdi bir tane de collection oluşturma aşaması örnek vereceğim sizlere. Create new collection type butonuna bastığınızda aşağıda gördüğünüz gibi bir popup açılıyor. Burada öncelikle oluşturmak istediğiniz collection için bir isim belirtiyorsunuz.

Yeni collection oluşturma

Daha sonra oluşturmak istediğiniz bir alan için tür seçmelisiniz.

Oluşturmak istediğimiz veri alanı için bir tür seçiyoruz.
Text alanı

Ben örnek olarak bir Text alanı seçtim. Bu alanı kullanmak için de bir isim belirtiyoruz.

Text alanı gelişmiş ayarlar

Görselde de olduğu gibi gelişmiş ayarlardan bu alanımızı özelleştirebiliyoruz. Örnekte görüldüğü gibi ben zorunlu alan ve minimum uzunluk ekledim. Daha sonra Finish diyoruz ve sağ üst köşede bulunan Save butonuna basıp collectionımızı kayıt ediyoruz.

Content Manager- Project

Daha sonra oluşturduğumuz Project collectionı için Content Manager sekmesinden kayıt ekliyoruz. Eklediğimiz kayıtları publish ederek API’mizde görünür hale getirip kullanabiliyoruz. Bundan önce ise ayarlar kısmından API kullanımı için gerekli izinleri vermeliyiz.

Settings/Roles/Public/Permissions/Project

Gerekli izinleri verip kayıt ettikten sonra artık projemizde API’mizi kolaylıkla kullanabiliriz. Proje içerinde API’mizi ise aşağıda görüldüğü gibi çağırıyoruz.

Vue.js projesi içinde Strapi kullanımı

Strapi ile API’leri oluşturup Vue.js projemiz ile kullanmak gördüğünüz gibi oldukça kolay. Yazımın sonlarına gelirken karşıma çıkan birkaç küçük sorun için çözümleri de bırakıyorum aşağıya :)

Collection’ınınız içinde componentler barındırıyor veya medialarınız var ama bilgileri API’niz içerisinde gözükmüyor ise API’nize şunları ekleyebilirsiniz.

  • Medya vs API’nizde görünmeyen bilgiler için;
API de görünmeyen bilgiler için populate=*

API’nizin sonuna popule=* ekleyebilirsiniz. Component array’iniz var ve onları da görüntüleyemiyor iseniz şu yöntemi deneyebilirsiniz.

Component bilgilerini getirmek için API

Son olarakta belirli bir id’ye ait verileri görüntülemek için;

Belirli bir id’ye ait kayıt API’si

eklediğim örnek API’leri kullanabilirsiniz. Strapi’yi ve Vue.js projesi ile kullanımını başlangıç seviyesinde yazımda derledim. Umarım sizler için faydası olmuştur. Aşağıya örnek proje (ui&api) linklerini ve daha detaylı incelemek isteyenler için Strapi adresini bırakıyorum:) Yeni içeriklerle görüşmek üzere :) 👋🏻

Arayüz reposu : https://github.com/KadriyeAksakal/Blog-UI

Api reposu : https://github.com/KadriyeAksakal/Blog-Api

Strapi websitesi : https://strapi.io/

Soru, görüş ve önerileriniz için mail atabilirsiniz.

--

--