Rascunho e publicação
Lê, grava, publica e descarta o rascunho do layout da vitrine.
O rascunho é uma cópia editável da página. Nada nele aparece para o cliente até o publish. Há um rascunho por layout. As quatro rotas abaixo exigem o privilégio manage_layouts; o {layoutId} é o layout_id devolvido por Ler a página publicada.
Ler o rascunho
/api/v1/admin/editor/draft/{layoutId}AdminLê o rascunho de um layout
Parâmetros de caminho
layoutIdintegerobrigatórioCampos da resposta
iduuidlayout_idintegerpage_typestringindex.index quando não informada).containersarraycreated_byuuidcreated_atstringupdated_atstringGravar o rascunho
/api/v1/admin/editor/draft/{layoutId}AdminCria ou substitui o rascunho inteiro
Grava o estado completo do editor. Se já existe rascunho, o conteúdo dele é substituído pelo que você enviar; senão, um novo é criado.
Parâmetros de caminho
layoutIdintegerobrigatórioCorpo da requisição
page_typestringpadrão: index.indexcontainersarrayobrigatórioLista completa de contêineres. Cada item:
idstringposition.positionstringobrigatóriotop_panel, header, content, footer...). É a chave usada na publicação.sort_orderintegersectionsarrayid, template_slug, block_type, name, config, visible, sort_order e, opcionalmente, usergroup_ids e custom_css.Exemplo de requisição
A resposta 200 é o rascunho gravado, no formato de "Ler o rascunho".
Publicar o rascunho
/api/v1/admin/editor/draft/{layoutId}/publishAdminPublica o rascunho como página real
Aplica o rascunho à vitrine e apaga o rascunho. Na prática: (1) contêineres que existem na página publicada e não estão no rascunho são removidos, a menos que o rascunho não tenha contêiner algum; (2) o conteúdo de cada contêiner do rascunho é reconstruído, com uma linha de largura total por seção; (3) seções com visible: false viram blocos desativados. A operação é uma transação: ou aplica tudo ou nada.
Parâmetros de caminho
layoutIdintegerobrigatórioDescartar o rascunho
/api/v1/admin/editor/draft/{layoutId}AdminDescarta o rascunho sem publicar
Parâmetros de caminho
layoutIdintegerobrigatórioErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | layoutId que não é inteiro (ou menor que 1, no publicar); corpo inválido (gravar) | {"error":"invalid layout id","detail":"layout id must be an integer"} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem o privilégio manage_layouts | {"error":"insufficient privileges","required":"manage_layouts"} |
| 404 | Não existe rascunho (ler) | {"error":"no draft found","detail":"no draft exists for this layout"} |
| 500 | Publicar ou descartar sem rascunho; layout sem página padrão; falha de banco | {"error":"failed to publish draft","detail":"no draft exists for layout 166"} |