Sistema de Rascunho Strapi
Sistema-de-Rascunho-Strapiblog_image_banner

Sistema de rascunho - Strapi

Este guia explica como criar um sistema de rascunho. Você gerenciará o status de rascunho, publicado e arquivado.


Introdução

O que queremos aqui é buscar apenas dados que tenham um status publicado.


Mas não queremos usar parâmetros (por exemplo, /articles?status=published) porque você pode facilmente falsificar os parâmetros.


Para poder fazer isso, primeiro você precisa entender alguns conceitos.


Quando você cria um tipo de conteúdo, ele gera uma API com a seguinte endpoint list.


Cada um desses endpoints dispara uma ação do controlador. Aqui está a lista de ações do controlador que existem por padrão quando um tipo de conteúdo é criado.


Se você verificar o arquivo do controlador da API gerada ./api/{content-type}/controller/{Content-Type}.js, verá um arquivo vazio. Isso ocorre porque toda a lógica padrão é gerenciada pelo Strapi. Mas você pode substituir essas ações por seu próprio código.


E é isso que faremos para filtrar para o status publicado por padrão.


Exemplo

No nosso exemplo, usaremos um tipo de conteúdo Artigo. Por padrão, ao buscar artigos, você obtém todos os artigos. Vamos considerar que você não deseja expor artigos que estão no status de rascunho ou arquivo.


Para aplicar essa regra, personalizaremos a ação que busca todos os artigos para apenas buscar artigos publicados.


Para seguir o exemplo, você precisará criar um tipo de artigo e adicionar a seguinte definição de campo:


atributo de string chamado title

atributo de text chamado content

atributo de enumeration chamado status com draft, published, archive

Em seguida, adicione alguns dados com status diferente.

Substituir ação do controlador

Para personalizar a função que busca todos os nossos artigos, precisamos substituir a função de localização.

Primeiro, para ver a diferença, vamos solicitar GET /articles. Você verá todos os dados que você criou. Agora vamos começar a personalização.

Atalho - ./api/article/controller/Article.js




Depois de salvar a nova função, vamos reiniciar a solicitação GET /articles. Veremos strapi como resposta.


Retorne os dados

Agora sabemos a função que precisamos atualizar, mas queremos apenas personalizar os valores do artigo retornados.


Na documentação do controlador, você encontrará a implementação padrão de todas as ações. Isso o ajudará a sobrescrever a lógica de busca


Atalho - ./api/article/controller/Article.js




E agora os dados estão de volta em GET /articles


Aplique nossas alterações

Aqui, queremos força para buscar artigos com status igual ao publicado.

A maneira de fazer isso é definir ctx.query.status para publicado. Isso forçará o filtro da consulta.


Atalho - ./api/restaurant/controller/Restaurant.js




E tada! Artigos de rascunho e arquivo desapareceram.

*DICA

Este guia pode ser aplicado a qualquer outra ação do controlador.



ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.