Quickstarters
CRUD Samples
How to Develop a CRUD App with TypeScript?
36 min
visão geral neste guia, você aprenderá como construir uma aplicação crud (criar, ler, atualizar, deletar) usando typescript utilizaremos o back4app como a plataforma de backend, tornando o gerenciamento de dados simples este guia cobre a configuração de um projeto back4app, modelagem de seus dados e integração da funcionalidade crud em uma aplicação typescript inicialmente, você criará um projeto no back4app chamado basic crud app typescript que oferece uma solução de armazenamento nosql flexível você projetará sua estrutura de dados definindo classes e campos manualmente ou com a ajuda do agente de ia do back4app em seguida, você usará o back4app admin app para gerenciamento de backend através de uma interface amigável que simplifica as operações de dados finalmente, você conectará sua aplicação typescript com o back4app usando o sdk javascript do parse, garantindo acesso seguro e autenticação ao final deste tutorial, você terá um aplicativo typescript totalmente operacional capaz de lidar com tarefas básicas de crud, incluindo autenticação de usuário e gerenciamento de dados o que você vai aprender como construir um aplicativo crud baseado em typescript com um backend nosql métodos para projetar um backend escalável integrado com um front end em typescript como aproveitar o admin app do back4app para gerenciar seus dados sem esforço estratégias para implantação, incluindo containerização com docker, para lançar seu aplicativo typescript suavemente pré requisitos antes de começar, certifique se de que você tem uma conta no back4app com um projeto configurado precisa de ajuda? visite introdução ao back4app https //www back4app com/docs/get started/new parse app um ambiente de desenvolvimento typescript use um editor como o visual studio code e certifique se de ter o node js instalado conhecimento básico de typescript, programação orientada a objetos e apis restful se necessário, consulte a documentação do typescript https //www typescriptlang org/docs/ passo 1 – inicialização do projeto configurando um novo projeto back4app faça login na sua conta back4app clique no botão “novo app” no seu painel digite o nome do projeto basic crud app typescript e siga os passos para completar a criação do projeto criar novo projeto após o projeto ser estabelecido, ele aparecerá no seu painel, servindo como a base para o seu backend passo 2 – elaborando o esquema de dados definindo suas estruturas de dados para esta aplicação, você criará algumas coleções (classes) no back4app abaixo estão exemplos de classes essenciais com campos que facilitam operações crud 1\ coleção de itens campo tipo de dados descrição id objectid identificador único gerado automaticamente título string nome ou título do item descrição string uma breve descrição do item criadoem data timestamp quando o item foi criado atualizadoem data timestamp para a última atualização 2\ coleção de usuários campo tipo de dados descrição id objectid identificador único gerado automaticamente nome de usuário string nome único para o usuário email string endereço de e mail único hashdasenha string senha hashada com segurança para login criadoem data timestamp de criação da conta atualizadoem data timestamp da última atualização da conta você pode criar essas coleções e campos manualmente no painel do back4app criar nova classe ao adicionar campos, escolha o tipo de dado, nomeie o campo, defina um valor padrão se necessário e indique se é obrigatório criar coluna usando o agente de ia back4app para configuração de esquema o agente de ia integrado no back4app pode gerar automaticamente seu esquema de dados a partir de uma descrição isso simplifica a configuração e garante que seu modelo esteja pronto para operações crud como usar o agente de ia abra o agente de ia faça login no seu painel do back4app e localize o agente de ia nas configurações do seu projeto descreva seu esquema forneça uma descrição detalhada das coleções e campos que você precisa revise e confirme o agente de ia proporá um esquema revise o e confirme para aplicar as alterações exemplo de prompt create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) esse método assistido por ia economiza tempo e garante um esquema bem estruturado passo 3 – usando o app admin para operações crud visão geral do app admin o app admin do back4app fornece uma interface sem código que torna a gestão dos seus dados de backend simples suas funcionalidades de arrastar e soltar permitem que você realize operações crud—como adicionar, ler, atualizar e excluir registros—sem complicações habilitando o app admin vá para o menu “mais” no seu painel do back4app escolha “app admin” e clique em “habilitar app admin ” configure suas credenciais de admin criando uma conta de admin inicial, que também definirá funções como b4aadminuser e classes de sistema habilitar app admin após a ativação, faça login no app admin para gerenciar seus dados painel do app admin gerenciando operações crud com o app admin dentro do app admin você pode inserir registros use a função “adicionar registro” em qualquer coleção (por exemplo, itens) para inserir novos dados revisar e editar clique em um registro para ver detalhes ou modificar campos excluir registros remova entradas que não são mais necessárias esta interface intuitiva melhora a gestão de dados ao simplificar tarefas rotineiras passo 4 – conectando seu aplicativo typescript ao back4app com seu backend pronto, o próximo passo é vincular seu aplicativo typescript ao back4app opção a usando o sdk javascript do parse instale o sdk javascript do parse usando npm, execute npm install parse inicialize o parse em seu aplicativo typescript crie um arquivo de configuração (por exemplo, parseconfig ts ) // parseconfig ts import parse from 'parse'; export function initializeparse() { parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; } 3\ implement crud functions in typescript for example, create a service for managing items ```typescript // itemsservice ts import parse from 'parse'; export async function fetchitems() promise\<parse object\[]> { const query = new parse query('items'); try { return await query find(); } catch (error) { console error('error fetching items ', error); return \[]; } } export async function additem(title string, description string) promise\<void> { const item = new parse object('items'); item set('title', title); item set('description', description); try { await item save(); console log('item added successfully '); } catch (error) { console error('error adding item ', error); } } export async function updateitem(objectid string, newtitle string, newdescription string) promise\<void> { const query = new parse query('items'); try { const item = await query get(objectid); item set('title', newtitle); item set('description', newdescription); await item save(); console log('item updated successfully '); } catch (error) { console error('error updating item ', error); } } export async function removeitem(objectid string) promise\<void> { const query = new parse query('items'); try { const item = await query get(objectid); await item destroy(); console log('item removed successfully '); } catch (error) { console error('error removing item ', error); } } opção b utilizando rest ou graphql se você preferir não usar o sdk do parse, pode realizar operações crud via rest por exemplo, para recuperar itens usando rest import fetch from 'node fetch'; export async function getitemsviarest() { try { const response = await fetch('https //parseapi back4app com/classes/items', { method 'get', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); console log('data retrieved ', data); } catch (error) { console error('error retrieving items ', error); } } integre essas chamadas de api conforme necessário dentro dos seus módulos typescript passo 5 – garantindo a segurança do backend configurando listas de controle de acesso (acls) proteja seus dados aplicando acls aos seus objetos por exemplo, para criar um item que apenas seu proprietário pode acessar import parse from 'parse'; export async function createsecureitem(title string, description string, owner parse user) { const item = new parse object('items'); item set('title', title); item set('description', description); const acl = new parse acl(); acl setreadaccess(owner, true); acl setwriteaccess(owner, true); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); item setacl(acl); try { await item save(); console log('secure item created successfully '); } catch (error) { console error('error creating secure item ', error); } } gerenciando permissões de nível de classe (clps) ajuste os clps através do painel do back4app para impor restrições de acesso, de modo que apenas usuários autenticados possam interagir com certas coleções passo 6 – implementando a autenticação de usuário gerenciando contas de usuário o back4app utiliza a classe de usuário embutida do parse para gerenciar a autenticação em sua aplicação typescript, implemente o registro e login de usuários da seguinte forma import parse from 'parse'; export async function registeruser(username string, password string, email string) promise\<void> { const user = new parse user(); user set('username', username); user set('password', password); user set('email', email); try { await user signup(); console log('user registered successfully!'); } catch (error) { console error('registration error ', error); } } export async function loginuser(username string, password string) promise\<void> { try { const user = await parse user login(username, password); console log('user logged in ', user get('username')); } catch (error) { console error('login failed ', error); } } import parse from 'parse'; export async function registeruser(username string, password string, email string) promise\<void> { const user = new parse user(); user set('username', username); user set('password', password); user set('email', email); try { await user signup(); console log('user registered successfully!'); } catch (error) { console error('registration error ', error); } } export async function loginuser(username string, password string) promise\<void> { try { const user = await parse user login(username, password); console log('user logged in ', user get('username')); } catch (error) { console error('login failed ', error); } } import parse from 'parse'; export async function registeruser(username string, password string, email string) promise\<void> { const user = new parse user(); user set('username', username); user set('password', password); user set('email', email); try { await user signup(); console log('user registered successfully!'); } catch (error) { console error('registration error ', error); } } export async function loginuser(username string, password string) promise\<void> { try { const user = await parse user login(username, password); console log('user logged in ', user get('username')); } catch (error) { console error('login failed ', error); } } essa abordagem pode ser estendida para gerenciamento de sessão, redefinições de senha e outros recursos de autenticação passo 7 – implantando sua aplicação typescript back4app simplifica o processo de implantação você pode implantar sua aplicação typescript usando métodos como a containerização docker 7 1 construindo seu app typescript compilar e agrupar use sua ferramenta de construção (como webpack ou tsc) para compilar e agrupar sua aplicação por exemplo, para compilar com tsc tsc confirme a saída certifique se de que os arquivos gerados incluam todos os ativos e módulos necessários 7 2 organizando a estrutura do seu projeto um projeto typescript típico pode parecer assim basic crud app typescript/ \| src/ \| | index ts \| | parseconfig ts \| | services/ \| | itemsservice ts \| | authservice ts \| package json \| tsconfig json \| readme md exemplo parseconfig ts // parseconfig ts import parse from 'parse'; export function initializeparse() { parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; } 7 3 dockerizando sua aplicação typescript se você escolher a containerização, adicione um dockerfile na raiz do seu projeto \# use an official node js runtime as a parent image from node 18 alpine \# set the working directory workdir /usr/src/app \# copy package files and install dependencies copy package json / run npm install \# bundle app source code copy \# build the typescript app run npm run build \# expose port (adjust as needed) expose 3000 \# start the app cmd \[ "node", "dist/index js" ] 7 4 implantação via back4app web deployment vincule seu repositório github certifique se de que seu projeto typescript esteja hospedado no github configure as configurações de implantação no painel do back4app, use a opção web deployment para conectar seu repositório (por exemplo, basic crud app typescript ) e selecione o branch apropriado defina os comandos de construção e saída especifique o comando de construção (como npm run build ) e indique o diretório de saída implante seu aplicativo clique em implantar e siga os logs até que seu aplicativo esteja ao vivo passo 8 – considerações finais e melhorias futuras parabéns! você criou com sucesso uma aplicação crud baseada em typescript integrada com o back4app você configurou um projeto chamado basic crud app typescript , projetou coleções para itens e usuários, e gerenciou seus dados usando o back4app admin app além disso, você conectou seu aplicativo typescript via o sdk javascript parse (ou rest/graphql) e implementou medidas de segurança robustas o que vem a seguir? expanda seu aplicativo integre recursos adicionais, como filtragem avançada, visualizações detalhadas de itens ou atualizações de dados em tempo real aprimore as capacidades do backend explore funções em nuvem, integre apis de terceiros ou implemente permissões baseadas em funções aprendizado adicional visite a documentação do back4app https //www back4app com/docs e confira guias adicionais para otimizar seu aplicativo feliz codificação e aproveite a construção de sua aplicação crud em typescript!