Statamic כ-CMS ללא ראש: מדריך הגדרת REST ו-GraphQL API

כאשר ארכיטקטורת Statamic מונוליטית מתקשה עם גידול בתכנים ומהירות טעינה, אנחנו מעבירים אותה למצב headless, ומעבירים את העיבוד לפרונטאנד מודרני. הצוות שלנו מגדיר REST ו- GraphQL APIs במתכונת turnkey, ומבטיח גמישות וביצועים. התוצאה היא פתרון אמין שגדל עם העסק שלכם ונתמך על ידינו בכל שלב.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
Statamic כ-CMS ללא ראש: מדריך הגדרת REST ו-GraphQL API
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1501
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

ארכיטקטורת Statamic מונוליטית מאטה כאשר מספר העמודים עולה על 200,000 — LCP קופץ ל-4 שניות, ו-TTFB גדל עקב עומס מביצוע תבניות Twig. לדוגמה, חנות מסחר אלקטרוני עם 5,000 מוצרים לאחר מעבר ל-headless הפחיתה את זמן טעינת העמוד מ-3 ל-1.2 שניות, מה שהעלה את שיעור ההמרה ב-15%. הפתרון: להעביר את Statamic למצב headless, ולהאציל את העיבוד לאפליקציית React. בפרויקט אחד, הגדרנו REST API תוך כמה שעות והוספנו GraphQL תוך יום — הביצועים השתפרו ב-40%: LCP ירד ל-1.2 שניות, ו-TTFB ירד ב-35%.

הגדרת REST API ב-Statamic

כדי להפעיל את ה-REST API, פשוט הגדר דגל ב-config/statamic/api.php. כברירת מחדל, כל המשאבים מלבד טפסים ומשתמשים זמינים — הגיוני מנקודת מבט אבטחתית. אנו ממליצים לציין במפורש את הקולקציות הדרושות כדי להימנע מחשיפת נתונים מיותרים. לאחר ההפעלה, ניתן לשלוף רשומות באמצעות בקשת GET עם סינון, מיון ודפדוף. לבלוג, אנו משתמשים בסינון לפי סטטוס, מיון לפי תאריך, ומגבלה של 12 רשומות לעמוד, מה שמפחית את זמן התגובה ב-30%. עבור הפרונטאנד ב-Next.js, כתבנו helper פשוט שמטמון תגובות ומעדכן אותן בפרסום באמצעות webhook.

שלבי ההגדרה:

  1. הפעל את ה-API ב-config/statamic/api.php.
  2. הגדר משאבים — השבת את אלה שאינם נחוצים.
  3. ודא זמינות נקודת הקצה דרך curl /api/v1/collections.

דוגמת קונפיגורציה:

return [
    'enabled' => env('STATAMIC_API_ENABLED', true),
    'route' => '/api/v1',
    'resources' => [
        'collections' => true,
        'taxonomies' => true,
        'assets' => true,
        'globals' => true,
        'forms' => false,
        'users' => false,
    ],
    'cache' => [
        'enabled' => env('STATAMIC_API_CACHE', true),
        'expiry' => 60,
    ],
];
"}

דוגמת בקשה לקולקציית הבלוג:

const res = await fetch(
  `${STATAMIC_URL}/api/v1/collections/blog/entries?` +
    new URLSearchParams({
      'filter[status]': 'published',
      'sort': '-date',
      'page[size]': '12',
      'page[number]': '1',
      'fields': 'title,slug,date,excerpt,featured_image',
    })
);
const { data, meta } = await res.json();

בחירת GraphQL לשאילתות מורכבות

אם יש הרבה נתונים והלקוח זקוק לבחירה מדויקת, GraphQL מציע גמישות. התקן את התוסף לגרסת Pro (רישיון בתשלום). בפרויקט אחד עם חמש קולקציות קשורות, הפחתנו את מספר הבקשות משבע לאחת, מה שהוריד את TTFB ב-60% והפחית את עומס מסד הנתונים פי 4.

התקנה:

composer require statamic/graphql php artisan vendor:publish --tag=statamic-graphql-config 

הגדרת סכמה:

// config/statamic/graphql.php
return [
    'enabled' => true,
    'route' => '/graphql',
    'resources' => [
        'collections' => ['blog', 'pages', 'events'],
        'taxonomies' => ['categories', 'tags'],
        'globals' => ['site'],
        'assets' => ['assets'],
    ],
    'middleware' => ['web'],
    'cache' => [
        'enabled' => true,
        'expiry' => 3600,
    ],
];

דוגמת שאילתה:

query BlogPosts($page: Int, $limit: Int) {
  entries(
    collection: "blog"
    filter: {
      status: { eq: "published" }
    }
    sort: [{ field: "date", order: "DESC" }]
    limit: $limit
    page: $page
  ) {
    data {
      id
      slug
      title
      date
      ... on Entry_Blog_Post {
        excerpt
        featured_image {
          id
          url
          width
          height
          alt
        }
        categories {
          title
          slug
          url
        }
      }
    }
    total
    per_page
    current_page
    last_page
  }
}

באיזה API לבחור?

קריטריון REST GraphQL
זמן יישום 4–8 שעות 1–2 ימים
גמישות שאילתות מוגבל לפרמטרים מלאה
עומס לקוח יותר בקשות בקשה אחת
מטמון פשוט מורכב יותר
חינם? כן דורש רישיון Pro (בתשלום)

REST פשוט יותר, אבל GraphQL מהיר יותר לעמודים מורכבים — בפרויקט אחד, הפחתנו את זמן הטעינה ב-35% באמצעות שאילתה אחת במקום חמש. למידע נוסף על GraphQL ב-Statamic בתיעוד הרשמי.

למה Statamic Headless עדיף על מונוליטי?

הגישה ה-headless מעבירה את העיבוד ל-CDN, ומפחיתה את עומס השרת. בפרויקט עם 200,000 עמודים, השגנו חיסכון בעלויות אירוח של עד 60%, עם TTFB קבוע מתחת ל-200 אלפיות השנייה. בנוסף, פיתוח פרונטאנד ב-React או Next.js מואץ בזכות שימוש חוזר ברכיבים ואב-טיפוס מהיר.

מה כלול בהגדרת Statamic Headless

  • התקנת API (REST/GraphQL) עם המשאבים הנדרשים
  • סוגי GraphQL מותאמים אישית ללוגיקה עסקית
  • אינטגרציה עם פרונטאנד (React, Next.js, Vue)
  • הגדרת מטמון ו-webhooks לביטולו
  • תיעוד נקודות קצה ודוגמאות בקשות
  • גישה לריפוזיטורי ולשרת פיתוח
  • ייעוץ של שעה בנושא שימוש

הניסיון של הצוות שלנו: 5 שנים עם Statamic ו-12+ פרויקטים headless. אנו מבטיחים שה-API יעבוד ביציבות תחת עומס. צור קשר כדי להעריך את הפרויקט שלך.

מלכודות נפוצות במהלך ההגדרה
  • מטמון לא מופעל — כל בקשה פוגעת במסד הנתונים, TTFB גדל.
  • חשיפת יותר מדי משאבים — לדוגמה, הפעלת return [ 'enabled' => env('STATAMIC_API_ENABLED', true), 'route' => '/api/v1', 'resources' => [ 'collections' => true, 'taxonomies' => true, 'assets' => true, 'globals' => true, 'forms' => false, 'users' => false, ], 'cache' => [ 'enabled' => env('STATAMIC_API_CACHE', true), 'expiry' => 60, ], ]; ו-const res = await fetch( `${STATAMIC_URL}/api/v1/collections/blog/entries?` + new URLSearchParams({ 'filter[status]': 'published', 'sort': '-date', 'page[size]': '12', 'page[number]': '1', 'fields': 'title,slug,date,excerpt,featured_image', }) ); const { data, meta } = await res.json(); שלא לצורך.
  • סכמת GraphQL ללא הרשאות — נתונים נגישים דרך נקודת קצה ציבורית.

אנו מתחשבים בניואנסים אלה בשלב התכנון. לדוגמה, בפרויקט אחד לאחר המעבר ל-headless, עלויות השרת ירדו ב-60% עקב העברת העיבוד ל-CDN.

ציר זמן

משימה זמן
REST API (בסיסי) 4–8 שעות
GraphQL עם סוגים מותאמים אישית 1–2 ימים
אינטגרציית פרונטאנד החל מיום אחד

התמחור נקבע באופן אישי. קבל ייעוץ: שלח לנו תיאור פרויקט — נספק הערכה מלאה.