Desenvolvedores
src_
app_
my-route
route.ts

🌍 Visão Geral

O arquivo route.ts 📂 gerencia requisições GET dentro da pasta my-route. Ele utiliza o Payload CMS para recuperar informações da coleção colaboradores e retornar os dados em formato JSON.


📜 Estrutura do Código

🔹 Importações

import configPromise from '@payload-config';
import { getPayload } from 'payload';

🔍 Explicação:

  • configPromise ⚙️: Importa as configurações do Payload CMS.
  • getPayload 📦: Função que retorna uma instância do Payload, permitindo interagir com os dados.

🚀 Implementação da Função GET

export const GET = async () => {
  const payload = await getPayload({
    config: configPromise,
  });
 
  const data = await payload.find({
    collection: 'colaboradores',
  });
 
  return Response.json(data);
};

🔍 Explicação:

  • async () => {} ⚡: A função é assíncrona para suportar chamadas await.
  • getPayload({ config: configPromise }) 🔄: Obtém uma instância do Payload CMS utilizando a configuração importada.
  • payload.find({ collection: 'colaboradores' }) 📋: Busca todos os registros da coleção colaboradores.
  • Response.json(data) 📡: Retorna os dados encontrados no formato JSON.

🔥 Funcionalidades

Recuperação de Dados: O endpoint retorna informações da coleção colaboradores.
Formato JSON: Resposta padronizada para integração com front-ends e outros sistemas.
Uso de await: Evita bloqueios desnecessários e melhora a performance da API.


⚠️ Considerações

🔹 Assincronicidade: O uso de async/await melhora a eficiência, evitando bloqueios.
🔹 Segurança: É recomendável adicionar autenticação para restringir o acesso aos dados.
🔹 Manutenção: Evite modificar este arquivo sem necessidade, pois pode afetar a recuperação de dados da API.


📌 Código Completo

import configPromise from '@payload-config';
import { getPayload } from 'payload';
 
export const GET = async () => {
  const payload = await getPayload({
    config: configPromise,
  });
 
  const data = await payload.find({
    collection: 'colaboradores',
  });
 
  return Response.json(data);
};