Quickstarters
CRUD Samples
How to Create a CRUD Application with Elm?
35 min
visão geral neste guia, você aprenderá como construir uma aplicação crud completa (criar, ler, atualizar, excluir) usando elm usaremos o back4app como nosso serviço de backend para gerenciar dados sem esforço este guia explica como configurar um projeto back4app, projetar um esquema de dados flexível e integrar operações crud em uma aplicação elm usando chamadas de api rest inicialmente, você configurará um projeto back4app, aqui chamado de basic crud app elm , que fornece um banco de dados robusto e não relacional você projetará seu modelo de dados—manualmente ou usando o agente de ia inteligente do back4app em seguida, você gerenciará seu backend com o back4app admin app, que oferece uma interface intuitiva de arrastar e soltar para manipulação de dados finalmente, você conectará seu aplicativo elm ao back4app fazendo solicitações de api restful enquanto garante operações de dados seguras ao final deste tutorial, você terá uma aplicação elm pronta para produção que suporta funcionalidades básicas de crud e autenticação de usuário segura insights essenciais aprenda como construir uma aplicação elm crud emparelhada com um backend não relacional entenda como estruturar um backend escalável e conectá lo com um front end elm use o back4app admin app para ações de criar, ler, atualizar e excluir de forma contínua explore opções de implantação, incluindo docker, para lançar sua aplicação elm com facilidade pré requisitos antes de começar, certifique se de que você tem uma conta 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 elm instale o elm e use seu editor favorito familiaridade com os conceitos básicos de elm, programação funcional e requisições http verifique o guia elm https //guide elm lang org/ se necessário passo 1 – inicializando seu projeto criando um novo projeto back4app faça login na sua conta back4app clique no botão “novo app” no seu painel nomeie seu projeto basic crud app elm e siga as instruções para completar a configuração criar novo projeto uma vez que seu projeto esteja pronto, ele aparecerá no seu painel, preparando o cenário para a configuração do seu backend passo 2 – criando o esquema de dados configurando suas estruturas de dados para este aplicativo crud, você criará várias coleções (ou classes) no back4app abaixo estão exemplos das principais coleções e seus campos para suportar operações crud 1\ coleta de itens esta coleção armazena detalhes sobre cada entrada campo tipo detalhes id objectid identificador único gerado automaticamente título string nome do item descrição string descrição breve do item criadoem data timestamp marcando a criação atualizadoem data timestamp marcando a última atualização 2\ coleção de usuários esta coleção gerencia a autenticação e as credenciais dos usuários campo tipo detalhes id objectid identificador único gerado automaticamente nome de usuário string nome de usuário único para o usuário email string endereço de e mail único hashdasenha string senha criptografada para segurança criadoem data timestamp para quando a conta foi criada atualizadoem data timestamp da última atualização da conta você pode adicionar essas coleções e campos manualmente através do painel do back4app criar nova classe você pode adicionar campos selecionando o tipo apropriado, nomeando o campo e especificando se é obrigatório criar coluna usando o agente de ia do back4app para configuração de esquema o agente de ia do back4app simplifica a criação do seu esquema de dados com base na sua descrição este processo automatizado garante que seu esquema esteja configurado para todas as ações crud necessárias para usar o agente de ia acesse o agente de ia faça login no seu painel do back4app e localize o agente de ia nas configurações do seu projeto detalhe seu esquema de dados descreva as coleções e campos que você precisa revise e confirme verifique o esquema proposto e aprove o para configurar seu backend 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) essa abordagem inteligente economiza tempo e garante um esquema de dados robusto e consistente passo 3 – ativando a interface de administração e gerenciando operações crud introdução à interface de administração o app de administração do back4app oferece uma interface sem código para gerenciar seus dados de backend seu design amigável permite que você execute ações crud, como adicionar, visualizar, editar e excluir registros habilitando o app de administração vá para o menu “mais” no seu painel do back4app selecione “app de administração” e clique “habilitar app de administração ” crie sua conta de administrador, que também configurará funções como b4aadminuser e coleções do sistema habilitar app de administração uma vez ativado, faça login no app de administração para gerenciar seus dados painel do app de administração executando ações crud no app de administração dentro do app de administração, você pode inserir registros escolha “adicionar registro” em uma coleção (por exemplo, itens) para criar novas entradas inspecionar/editar registros clique em qualquer registro para ver detalhes ou modificar dados remover registros exclua entradas que não são mais necessárias esta interface fácil de usar simplifica a gestão de dados passo 4 – conectando seu aplicativo elm ao back4app com seu backend configurado, é hora de vincular seu aplicativo elm ao back4app usando chamadas de api rest em elm como elm não suporta um sdk parse dedicado, usaremos suas capacidades http integradas para interagir com os endpoints rest do back4app exemplo buscando dados da coleção de itens abaixo está um exemplo de módulo elm usando o http pacote para recuperar uma lista de itens module items exposing (item, fetchitems, itemdecoder) import http import json decode as decode exposing (decoder) type alias item = { id string , title string , description string } itemdecoder decoder item itemdecoder = decode map3 item (decode field "objectid" decode string) (decode field "title" decode string) (decode field "description" decode string) fetchitems cmd msg fetchitems = http get { url = "https //parseapi back4app com/classes/items" , expect = http expectjson handleresponse (decode field "results" (decode list itemdecoder)) } handleresponse result http error (list item) > msg handleresponse result = \ map the http result to your application's message type debug todo "handle the response appropriately" exemplo criando um novo item você também pode implementar requisições post em elm para adicionar novos registros createitem string > string > cmd msg createitem title description = let body = http jsonbody <| encode object \[ ( "title", encode string title ) , ( "description", encode string description ) ] in http post { url = "https //parseapi back4app com/classes/items" , body = body , expect = http expectjson handlepostresponse decode value } handlepostresponse result http error decode value > msg handlepostresponse result = debug todo "process the post response" createitem string > string > cmd msg createitem title description = let body = http jsonbody <| encode object \[ ( "title", encode string title ) , ( "description", encode string description ) ] in http post { url = "https //parseapi back4app com/classes/items" , body = body , expect = http expectjson handlepostresponse decode value } handlepostresponse result http error decode value > msg handlepostresponse result = debug todo "process the post response" repita padrões semelhantes para operações de atualização e exclusão usando os métodos put e delete passo 5 – protegendo seu backend configurando controles de acesso (acls) proteja seus dados configurando acls em seus objetos por exemplo, para restringir um item ao seu criador, você poderia usar \ in elm, you can add acl details to your json payload createprivateitem string > string > string > cmd msg createprivateitem title description ownerid = let acl = encode object \[ ( ownerid, encode object \[ ("read", encode bool true), ("write", encode bool true) ] ) , ( " ", encode object \[ ("read", encode bool false), ("write", encode bool false) ] ) ] body = http jsonbody <| encode object \[ ( "title", encode string title ) , ( "description", encode string description ) , ( "acl", acl ) ] in http post { url = "https //parseapi back4app com/classes/items" , body = body , expect = http expectjson handlepostresponse decode value } configurando permissões em nível de classe (clps) defina clps no painel do back4app para que apenas usuários autenticados possam acessar coleções específicas passo 6 – implementando autenticação de usuário gerenciando contas de usuário o back4app utiliza a coleção de usuários embutida para gerenciar a autenticação em seu aplicativo elm, você gerenciará inscrições e logins por meio de chamadas de api rest exemplo solicitação de cadastro de usuário signupuser string > string > string > cmd msg signupuser username password email = let body = http jsonbody <| encode object \[ ( "username", encode string username ) , ( "password", encode string password ) , ( "email", encode string email ) ] in http post { url = "https //parseapi back4app com/users" , body = body , expect = http expectjson handleauthresponse decode value } handleauthresponse result http error decode value > msg handleauthresponse result = debug todo "process the authentication response" siga uma abordagem semelhante para login e gerenciamento de sessão passo 7 – implantando sua aplicação elm back4app suporta implantação sem costura você pode implantar sua aplicação elm usando vários métodos, incluindo docker 7 1 construindo sua aplicação elm compile seu código elm execute o compilador elm para gerar javascript elm make src/main elm output=dist/main js prepare seus ativos certifique se de que seus arquivos javascript e html gerados estão prontos para implantação 7 2 organizando a estrutura do seu projeto um layout típico de projeto elm pode parecer basic crud app elm/ \| src/ \| | main elm \| | api elm \| dist/ \| | index html \| | main js \| elm json \| package json \| dockerfile 7 3 dockerizando sua aplicação elm se estiver containerizando, adicione um dockerfile \# use a lightweight node image for serving static files from node 16 alpine \# set the working directory workdir /app \# copy compiled files copy dist/ /app/dist/ \# expose the desired port expose 8080 \# serve the static files using a simple server cmd \["npx", "http server", "dist", " p", "8080"] 7 4 implantando com a implantação web do back4app vincule seu repositório hospede seu projeto elm no github configure as configurações de implantação no painel do back4app, escolha a implantação web recurso, conecte seu repositório (por exemplo, basic crud app elm ), e selecione o branch desejado defina os comandos de build especifique o comando de build (por exemplo, elm make src/main elm output=dist/main js ) e a localização do artefato implante seu app clique em implantar e monitore os logs até que seu app esteja ao vivo passo 8 – considerações finais e direções futuras parabéns! você construiu uma aplicação crud baseada em elm integrada com o back4app você configurou um projeto chamado basic crud app elm , projetou coleções para itens e usuários, e gerenciou dados através do back4app admin app além disso, você conectou sua aplicação elm usando chamadas de api rest e implementou medidas de segurança melhorias futuras expandir recursos integrar capacidades de busca avançada, visualizações detalhadas ou atualizações em tempo real aprimorar funções de backend experimente com funções em nuvem, integrações de terceiros ou acesso baseado em funções aprofundar seu conhecimento visite a documentação do back4app https //www back4app com/docs e outros recursos para aprimorar seu aplicativo feliz codificação e aproveite a construção com elm e back4app!