Data response Personalizada Strapi
Data-response-personalizadablog_image_banner

Data response personalizada  Strapi


Neste guia, veremos como você pode personalizar a response da sua API.

Introdução


Para poder atualizar o data response padrão, primeiro você precisa entender como ele funciona.

Quando você cria um tipo de conteúdo, ele gera uma API com os seguintes endpoits
 

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 gerenciar nossa data response personalizada.

Exemplo


No nosso exemplo, usaremos um tipo de restaurante com um chef. Por padrão, quando você busca restaurantes, você obtém todas as informações do chef. Vamos considerar que você não deseja expor o email do chef por motivos de privacidade.

Para aplicar essa regra, personalizaremos a ação que busca todos os restaurantes e removeremos o email dos dados retornados.

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

 atributo string chamado name

 atributo text chamado descrição

 atributo relação Restaurante (chef) - O usuário tem muitos restaurantes - Usuários (restaurantes)

Em seguida, adicione alguns dados.

Substituir ação do controlador


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

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

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





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

Retorne os dados


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

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/restaurant/controller/Restaurant.js




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

Aplique nossas alterações


Podemos ver que a função find retorna o resultado do mapa. E a função de map apenas limpa todas as entradas.

Portanto, em vez de retornar a entrada limpa, também removeremos o email do chef de cada restaurante.

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



E tada! O email desapareceu.

*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.