DezvoltatoriCONTENT API PUBLIC

REST și JSON simple. Închis până îl deschizi.

Configurația API-ului public pentru fiecare site controlează exact ce este expus și cui. Preia conținutul publicat, sitemap-urile și redirecționările în aceeași formă JSON previzibilă peste tot — fără schemă GraphQL de învățat, fără client generat de ținut sincronizat. Fiecare cerere de mai jos este reală: un blog construit pe CMSHub, apelat doar cu curl.

01 / PREIA CONȚINUTUL PUBLICAT

O singură cerere GET, înregistrări publicate în JSON

Odată ce un site activează API-ul și permite o colecție, înregistrările ei publicate sunt la un simplu GET distanță — rezolvate integral din antetul Host, fără cheie API pentru datele publice.

  • Sunt returnate doar înregistrările PUBLICATE — ciornele și reviziile nepublicate nu ajung niciodată pe calea publică.
  • Refuz implicit: un host necunoscut, un site dezactivat sau o colecție nepermisă returnează toate același 404.
  • ?locale=xx returnează varianta publicată în limba respectivă, cu revenire la limba implicită a spațiului de lucru.
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 / DESCOPERIRE AUTOMATĂ

Un sitemap care corespunde mereu cu ce este efectiv publicat

sitemap.xml și robots.txt sunt generate din același inventar de pagini din care citește Content API — nu există o configurație separată de sincronizat și nimic de regenerat manual.

  • Reflectă la fiecare cerere inventarul live de pagini — publici o pagină și apare în sitemap.
  • Alternativele hreflang sunt adăugate automat pentru orice pagină cu variante traduse.
  • /robots.txt direcționează crawlerele către același sitemap, pentru fiecare site.
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 / ÎNCHIS IMPLICIT

Tu decizi ce expune un site

API-urile publice de conținut rămân închise până configurezi explicit ce expune un site — nu există niciun endpoint deschis implicit care să servească pe tăcute conținut nepublicat sau ciorne.

Configurație pe site

Activează și configurează API-ul public independent pentru fiecare site dintr-un spațiu de lucru.

Doar conținut publicat

API-ul public servește doar ce a trecut de poarta de calitate și este efectiv publicat — niciodată ciorne.

Versionat, stabil

Fiecare rută se află sub o cale versionată, așa că o integrare construită azi funcționează în continuare pe măsură ce CMSHub evoluează.

APELEAZĂ UN ENDPOINT REAL

Activează API-ul public pentru un site.

Activează Content API public pentru unul dintre site-urile tale și preia o pagină generată.