TypeScript , GraphQL e NestJS formam as partes centrais de nossa pilha na Dandy. Juntos, eles fornecem um ecossistema poderoso e um conjunto de ferramentas que nos permite agir rapidamente, mantendo um sistema robusto e confiável. Os principais recursos que eles fornecem para nós são:
Para começar, vamos dar uma olhada no sistema a partir de três perspectivas: a geração de código que une os componentes perfeitamente, como as solicitações fluem em tempo de execução e como o código se parece da perspectiva de um desenvolvedor trabalhando em serviços e aplicativos dentro o sistema.
Este é o pipeline de geração de código, que opera em alguns estágios:
Passando por isso:
graphqltipos de objetos usando decoradores GraphQL da NestJS, além de resolvedores para lidar com consultas e mutações nesses objetos.graphql-codegenpacote e o esquema federado para gerar tipos de Typecript para todos os objetos em nosso esquema.graphql-codegené então usado para gerar tipos e código de tempo de execução para operações definidas dentro de .graphqlarquivos em nossos pacotes de cliente. Nosso pacote de cliente de front-end gera ganchos React usando Apollo Client, enquanto nosso pacote de cliente de back-end usa o graphql-operationspacote npm para gerar uma classe de cliente.Há muita coisa acontecendo lá, mas as coisas são muito mais simples quando processamos solicitações em tempo de execução:
O principal aqui é que os aplicativos nunca precisam interagir diretamente com os serviços de back-end, nem entre os serviços de back-end - todos os aplicativos e serviços enviam consultas e mutações ao Gateway, que então as despacha de maneira adequada. É importante ressaltar que isso é verdadeiro mesmo se a solicitação exigir que os dados sejam compostos de vários serviços.
Para encerrar, vamos dar um passo para trás na geração de código enquanto ampliamos para dar uma breve olhada em como o código real (desenvolvido e gerado) se parece na prática.
Como você deve se lembrar, tudo começa com classes e resolvedores definidos em nossos serviços de back-end:
A partir deles, geramos um esquema GraphQL incluindo:
Em seguida, compomos o esquema federado (que mescla os esquemas de nossos vários serviços), mas omitiremos isso aqui, pois nosso exemplo usa apenas um único tipo de objeto de um único serviço.
Em seguida, algum padrão é gerado para tornar o tipo de dados e a consulta utilizáveis no front-end:
Que no final das contas se parece com:
O cliente de back-end e o uso são semelhantes, exceto que o código gerado aproveita o graphql-requestpacote agnóstico de ambiente em vez dos ganchos Apollo / React.
Este é um exemplo muito simples, mas, o mais importante, seria tão simples de usar se o tipo de dados e o resolvedor fossem muito mais complicados, ou mesmo se a consulta exigisse que os dados fossem montados a partir de vários serviços.
Em artigos futuros, entraremos em mais detalhes sobre algumas das tecnologias e técnicas interessantes que acabamos de ver aqui. Se houver algo sobre o qual você esteja especialmente interessado em saber mais, entre em contato conosco.
Introdução O AVC é uma emergência médica que pode atingir qualquer pessoa a qualquer momento. Ocorre quando o fluxo sanguíneo para uma parte do cérebro é interrompido, levando a uma perda repentina da função cerebral.
O teste é uma parte essencial do desenvolvimento de software. Ele garante que o código seja confiável, funcione conforme o esperado e reduza a probabilidade de erros.
No atual cenário de negócios em rápida evolução, o conceito de trabalho híbrido e remoto ganhou um impulso sem precedentes. À medida que as empresas continuam a se adaptar às mudanças nas necessidades e expectativas de seus funcionários, especialistas de várias áreas se reuniram para discutir os benefícios, os desafios e o futuro dessa forma transformadora de trabalhar.
Introdução:Bem-vindos, corajosos leitores, a uma jornada que nos levará às profundezas mais sombrias do nosso planeta. Neste blog, mergulhamos no mundo enigmático da Fossa das Marianas, revelando seus segredos ocultos e revelando as verdades arrepiantes que se escondem sob sua superfície.
No mundo interconectado de hoje, a ameaça de ataques cibernéticos é mais prevalente do que nunca. Criminosos cibernéticos e agentes de estado-nação estão constantemente buscando explorar vulnerabilidades e roubar dados valiosos, representando um risco significativo para organizações de todos os tamanhos.
Por Alyson Lee, consultor administrativo de assuntos governamentais O processo de apropriações anuais do governo federal é fundamental para nossos esforços para financiar a remoção de dióxido de carbono (CDR). Todos os anos, a Carbon180 envia solicitações a vários escritórios do Congresso para ajudar a orientar para onde os dólares do próximo ano irão fluir.