ProgramadoresAPI PÚBLICA DE CONTEÚDO

REST e JSON simples. Fechada até a abrir.

A configuração da API pública por site controla exatamente o que é exposto e a quem. Obtenha conteúdo publicado, sitemaps e redirecionamentos com o mesmo formato JSON previsível em todo o lado: sem esquema GraphQL para aprender nem cliente gerado para manter sincronizado. Todos os pedidos abaixo são reais: um blog construído com o CMSHub, chamado apenas com curl.

01 / OBTENHA O CONTEÚDO PUBLICADO

Um pedido GET, registos publicados em JSON

Assim que um site ativa a API e inclui uma coleção na lista de permissões, os registos publicados ficam à distância de um simples GET, resolvidos inteiramente a partir do cabeçalho Host, sem chave de API para dados públicos.

  • Só são devolvidos registos PUBLICADOS: rascunhos e revisões não publicadas nunca passam pelo caminho público.
  • Negado por predefinição: um host desconhecido, um site desativado ou uma coleção fora da lista de permissões devolvem o mesmo 404.
  • ?locale=xx devolve a variante publicada nesse idioma, recorrendo ao idioma predefinido do espaço de trabalho quando não existe.
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 / DESCOBERTA AUTOMÁTICA

Um sitemap sempre igual ao que está publicado

sitemap.xml e robots.txt são gerados a partir do mesmo inventário de páginas que a API de conteúdo lê: não há configuração separada para manter sincronizada nem nada para regenerar à mão.

  • Reflete o inventário de páginas em tempo real em cada pedido: publica uma página e ela já está no sitemap.
  • As alternativas hreflang são adicionadas automaticamente a qualquer página com variantes traduzidas.
  • O /robots.txt encaminha os rastreadores para este mesmo sitemap, por 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 / FECHADA POR PREDEFINIÇÃO

Decida o que cada site expõe

As APIs públicas de conteúdo ficam fechadas até configurar explicitamente o que um site expõe: não existe nenhum endpoint aberto por predefinição a servir em silêncio conteúdo não publicado ou em rascunho.

Configuração por site

Ative e configure a API pública de forma independente para cada site de um espaço de trabalho.

Apenas conteúdo publicado

A API pública serve o que passou pelo filtro de qualidade e está efetivamente publicado. Nunca rascunhos.

Com versões e estável

Cada rota fica num caminho com versão, por isso uma integração construída hoje continua a funcionar à medida que o CMSHub evolui.

CHAME UM ENDPOINT REAL

Ative a API pública para um site.

Ative a API pública de conteúdo num dos seus sites e obtenha uma página gerada.