Primeiros passos com Prisma

O uso de ORM's no desenvolvimento de software já é uma pratica comum principalmente para quem trabalha com frameworks, sua utilização facilita vários problemas no acesso e consumo a base de dados. O Prisma trouxe uma nova experiência no desenvolvimento de aplicação. Neste post será realizada uma introdução sobre o que ele é e como utiliza-lo.

Image for post
Image for post
Stickers

O que é?

Prisma é um projeto OpenSource e que segundo o próprio time pode ser considerado uma especie de ORM que substitui os tradicionais.

Prisma replaces traditional ORMs and custom data access layers with a universal database abstraction used via the Prisma client. It is used to build GraphQL servers, REST APIs & more. - https://prisma.io

Além da abstração ele também possui um gerenciador de migrações que controla todas as alterações na estrutura de dados do banco. Um gerador de código para várias linguagens como: JavaScript, TypeScript, Flow, Go. Suporte a múltiplas bases de dados como: MySQL, PostgreSQL, MongoDB (veja todas as bases suportadas). Acesso type-safe a base de dados incluindo filtros, agregações, paginação e transações. Modelagem de dados declarativa.

O código gerado é chamado de prisma-client que é uma api muito flexível que possibilita seu uso em diversos casos de uso, como REST APIs, CLIs, aplicações baseadas em microservices e GraphQL APIs. O prisma-client é compatível com o ecossistema Apollo, tem suporte padrão para subscriptions GraphQL e paginação estilo Relay, oferece segurança ponta-a-ponta e vem com um dataloader integrado para resolver o problema N+1.

Como Usar?

Primeiro temos que instalar a CLI global do Prisma:

$ yarn global add prisma

Neste exemplo vamos usar o Prisma Cloud, se você quiser executar localmente vai ser necessário o Docker na sua maquina, voce pode baixa-lo aqui.

Para usar o Prisma Cloud é necessário se registrar aqui e depois efetuar o login pela CLI:

$ prisma login 

Agora que temos tudo que precisamos para usar o Prisma podemos criar uma pasta para o exemplo e inicializar o projeto pela CLI:

$ mkdir prisma-example
$ cd ./prisma-example
$ prisma init

Você vai ver algo parecido com a imagem abaixo, usando as setas do teclado selecione a opção Demo server.

Image for post
Image for post
Prisma CLI init

Depois você seleciona qual região do servidor, o nome do serviço e o stage (dev). O ultimo passo é selecionar qual o tipo de código deve ser gerado, para esse exemplo vou selecionar TypeScript.

Após este passos o Prisma vai gerar e publicar um serviço, disponibilizar um endpoint para acesso, gerar o código do prisma-client, criar um arquivo onde vai ser feita a modelagem de dados e o arquivo yml de configuração.

O Prisma tem outro projeto chamado graphql-yoga que expõe de forma simples uma API GraphQL usando como base o apollo-server, aqui você pode ver um exemplo de uma API usando o Prisma como camada de acesso a dados.

Conclusão

Prisma é uma nova forma de acesso a dados, que resolve muitos problemas dos ORMs tradicionais e traz um poder enorme para o desenvolvimento de software. Alguns pontos chaves sobre o Prisma:

  • Tipagem de dados segura
  • Camada de acesso a dados
  • Agnóstico a banco de dados
  • Gerador de código automático
  • Gerenciador de estrutura de dados(migrations)
  • Query Engine de alta performance
  • Suporte a base dados relacionais e não relacionais
  • Suporte a transações
  • Suporte a query nativas
  • Não serve somente para GraphQL
  • Pode ser usado como microservice
  • Roda em um container Docker

Vocês podem encontrar várias informações a mais no próprio site do prisma e em sua doc que é atualizada com frequência.

Este foi meu primeiro post, se você puder deixar sua opinião sobre o conteúdo e a forma a qual ele foi abordado seria de muito valor :D

Codengage

Somos uma empresa que alia os desafios com a capacidade de…

Munir Ahmed Elsangedy

Written by

Cofounder & Technical Lead at Codengage

Codengage

Codengage

Somos uma empresa que alia os desafios com a capacidade de transformar ideias em grandes oportunidades de negócios, para isso, investimos forte na qualidade profissional, pois acreditamos que o conhecimento diferenciado eleva a sofisticação dos produtos e serviços.

Munir Ahmed Elsangedy

Written by

Cofounder & Technical Lead at Codengage

Codengage

Codengage

Somos uma empresa que alia os desafios com a capacidade de transformar ideias em grandes oportunidades de negócios, para isso, investimos forte na qualidade profissional, pois acreditamos que o conhecimento diferenciado eleva a sofisticação dos produtos e serviços.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store