المطوّرونAPI المحتوى العامة

REST وJSON بلا تعقيد. مغلقة حتى تفتحها.

تتحكم إعدادات الـ API العامة لكل موقع بما يُكشف بالضبط ولمن. اسحب المحتوى المنشور وخرائط المواقع وعمليات إعادة التوجيه بشكل JSON نفسه المتوقَّع في كل مكان — لا مخطط GraphQL تتعلمه، ولا عميل مولّد تحافظ على مزامنته. كل طلب أدناه حقيقي: مدونة مبنية على CMSHub، تُستدعى بـ curl فقط.

01 / اجلب المحتوى المنشور

طلب GET واحد، والسجلات المنشورة بصيغة JSON

بمجرد أن يفعّل الموقع الخدمة ويضيف مجموعة إلى قائمة السماح، تصبح سجلاتها المنشورة على بُعد طلب GET بسيط — تُحدَّد بالكامل من ترويسة Host، ودون الحاجة إلى مفتاح API للبيانات العامة.

  • لا تُعاد إلا السجلات PUBLISHED — المسودات والمراجعات غير المنشورة لا تتسرّب أبدًا عبر المسار العام.
  • مرفوض افتراضيًا: المضيف غير المعروف، والموقع المعطّل، والمجموعة غير المدرجة في قائمة السماح — كلها تعيد 404 بالطريقة نفسها.
  • يعيد ‎?locale=xx النسخة المنشورة بتلك اللغة، مع الرجوع إلى اللغة الافتراضية لمساحة العمل.
GEThttps://the-signal.blog/api/posts
curl https://the-signal.blog/api/posts
RESPONSE
{
  "siteId": "the-signal-4f2a",
  "siteName": "The Signal",
  "baseUrl": "https://the-signal.blog",
  "collection": {
    "id": "3b0d6f2a-9c41-4e8a-8f2e-1d4c9a7b6e11",
    "slug": "posts",
    "name": "Posts"
  },
  "data": [
    {
      "id": "a91f2e3c-7d5b-4a10-9c3e-6f8a2b1d0e44",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "Shipping a public content API without a GraphQL schema",
        "slug": "shipping-a-public-content-api",
        "excerpt": "Plain REST beats a bespoke query language when a frontend just needs JSON.",
        "category": "Engineering",
        "author": "Dana Osei",
        "published_at": "2026-09-10"
      }
    },
    {
      "id": "d2c5b8a1-4e3f-4c9d-8b7a-2f1e6d5c4b33",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "What the quality gate actually checks before you publish",
        "slug": "the-quality-gate-explained",
        "excerpt": "Every generated page passes the same checks, whether it's post 1 or post 10,000.",
        "category": "Product",
        "author": "Dana Osei",
        "published_at": "2026-09-04"
      }
    }
  ],
  "meta": {
    "locale": "en",
    "pagination": { "start": 0, "limit": 20, "total": 2, "nextCursor": null }
  }
}
02 / اكتشاف تلقائي

خريطة موقع تطابق دائمًا ما نُشر فعلًا

يُولَّد sitemap.xml وrobots.txt من جرد الصفحات نفسه الذي تقرأ منه API المحتوى — فلا إعدادات منفصلة تحافظ على مزامنتها، ولا شيء تعيد توليده يدويًا.

  • تعكس جرد الصفحات الحيّ مع كل طلب — انشر صفحة، فتجدها في خريطة الموقع.
  • تُضاف بدائل hreflang تلقائيًا لأي صفحة لها نسخ مترجمة.
  • يوجّه ملف ‎/robots.txt برامج الزحف إلى خريطة الموقع نفسها لكل موقع.
GEThttps://the-signal.blog/sitemap.xml
curl https://the-signal.blog/sitemap.xml
RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url><loc>https://the-signal.blog/posts/shipping-a-public-content-api</loc><lastmod>2026-09-10T14:22:00.000Z</lastmod></url>
  <url><loc>https://the-signal.blog/posts/the-quality-gate-explained</loc><lastmod>2026-09-04T09:15:00.000Z</lastmod></url>
</urlset>
03 / مغلقة افتراضيًا

أنت من يقرّر ما يكشفه الموقع

تبقى واجهات API المحتوى العامة مغلقة حتى تحدّد صراحةً ما يكشفه كل موقع — لا نقطة نهاية مفتوحة افتراضيًا تقدّم بصمت محتوى غير منشور أو مسودات.

إعدادات لكل موقع

فعّل الـ API العامة واضبطها بشكل مستقل لكل موقع في مساحة العمل.

المحتوى المنشور فقط

لا تقدّم الـ API العامة إلا ما اجتاز بوابة الجودة ونُشر فعلًا — لا مسودات أبدًا.

بإصدارات ومستقرة

كل مسار يقع تحت مسار بإصدار، فيستمر التكامل المبني اليوم في العمل مع تطوّر CMSHub.

استدعِ نقطة نهاية حقيقية

فعّل الـ API العامة لموقع.

شغّل API المحتوى العامة لأحد مواقعك واجلب صفحة مولّدة.