Dla programistówPUBLICZNE CONTENT API

Zwykły REST i JSON. Zamknięte, dopóki go nie otworzysz.

Konfiguracja publicznego API dla każdej witryny określa dokładnie, co i komu jest udostępniane. Pobieraj opublikowane treści, mapy witryny i przekierowania w tym samym przewidywalnym formacie JSON — bez schematu GraphQL do nauki i bez generowanego klienta do synchronizowania. Każde żądanie poniżej jest prawdziwe: blog zbudowany na CMSHub, wywoływany samym curl.

01 / POBIERANIE OPUBLIKOWANYCH TREŚCI

Jedno żądanie GET, opublikowane rekordy w JSON

Gdy witryna włączy dostęp i doda kolekcję do listy dozwolonych, jej opublikowane rekordy są dostępne zwykłym żądaniem GET — rozpoznawanym wyłącznie po nagłówku Host, bez klucza API dla danych publicznych.

  • Zwracane są wyłącznie OPUBLIKOWANE rekordy — wersje robocze i nieopublikowane rewizje nigdy nie wyciekają ścieżką publiczną.
  • Domyślna odmowa: nieznany host, wyłączona witryna i kolekcja spoza listy dozwolonych zwracają 404 w ten sam sposób.
  • ?locale=xx zwraca opublikowany wariant dla tej wersji językowej, a w razie jego braku — wariant domyślnej wersji językowej przestrzeni roboczej.
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 / WYKRYWANIE AUTOMATYCZNIE

Mapa witryny zawsze zgodna z tym, co faktycznie opublikowano

sitemap.xml i robots.txt są generowane z tego samego inwentarza stron, z którego czyta API treści — nie ma osobnej konfiguracji do synchronizowania ani niczego do ręcznego odświeżania.

  • Odzwierciedla aktualny inwentarz stron przy każdym żądaniu — opublikujesz stronę, a ona już jest w mapie witryny.
  • Alternatywy hreflang są dodawane automatycznie dla każdej strony z przetłumaczonymi wariantami.
  • /robots.txt kieruje roboty do tej samej mapy witryny, osobno dla każdej witryny.
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 / DOMYŚLNIE ZAMKNIĘTE

To Ty decydujesz, co udostępnia witryna

Publiczne API treści pozostają zamknięte, dopóki jawnie nie skonfigurujesz, co witryna udostępnia — nie ma domyślnie otwartego endpointu, który po cichu serwuje nieopublikowane treści lub wersje robocze.

Konfiguracja dla każdej witryny

Włączaj i konfiguruj publiczne API niezależnie dla każdej witryny w przestrzeni roboczej.

Tylko opublikowane treści

Publiczne API serwuje to, co przeszło przez bramkę jakości i faktycznie zostało opublikowane — nigdy wersji roboczych.

Wersjonowane i stabilne

Każda trasa znajduje się pod wersjonowaną ścieżką, więc integracja zbudowana dziś będzie działać, gdy CMSHub będzie się rozwijać.

WYWOŁAJ PRAWDZIWY ENDPOINT

Włącz publiczne API dla witryny.

Włącz publiczne API treści dla jednej ze swoich witryn i pobierz wygenerowaną stronę.