Essas características principais do GraphQL o tornam único entre outras tecnologias de API
Olá, eu sou Ganesh. Estou construindo o LiveReview, uma ferramenta privada de revisão de código de IA que é executada na sua chave LLM (Openai, Gêmeos, etc.) com preços altamente competitivos – construídos para pequenas equipes. Verifique e experimente! Ao criar aplicativos modernos, especialmente para dispositivos móveis, como você obtém dados do servidor para o cliente é tudo. Durante anos, o REST tem sido o padrão para o design da API, mas geralmente vem com frustrações. Vejamos os problemas que levaram a uma nova maneira de pensar e ao nascimento de uma alternativa poderosa: grafql. Por que o GraphQL foi introduzido em primeiro lugar? Antes de mergulharmos no GraphQL, é crucial entender os desafios que foi projetado para resolver. Arquiteturas tradicionais de API como o REST geralmente lutam com dois padrões difundidos e ineficientes: exageros: isso acontece quando um terminal retorna mais dados do que o aplicativo cliente realmente precisa. Imagine precisar de apenas o nome de um usuário, mas recebe um objeto com 20 campos de informações do usuário. Isso desperdiça largura de banda e adiciona sobrecarga desnecessária de processamento para o cliente. Underbinging: este é o problema oposto, onde um único terminal não fornece todos os dados necessários, forçando o cliente a fazer várias chamadas de API. Para obter uma postagem no blog, seu autor e seus comentários, um aplicativo pode precisar fazer três solicitações seqüenciais. Essa “solicitação de cascata” aumenta significativamente os tempos de carga, especialmente em redes móveis lentas. Essas ineficiências foram particularmente dolorosas em um mundo cada vez mais centrado em dispositivos móveis, preparando o cenário para uma nova solução. O nascimento do GraphQL A história do GraphQL começa no Facebook por volta de 2011-2012. A empresa estava criando um pivô crítico de aplicativos móveis baseados em HTML5 a experiências totalmente nativas. Eles rapidamente perceberam que suas APIs de descanso existentes eram profundamente ineficientes para esse novo ambiente móvel. As várias viagens de ida e volta e cargas de dados inchadas resultaram em tempos de carregamento lento e uma má experiência do usuário em redes móveis não confiáveis. Em resposta, uma equipe interna foi encarregada de criar uma API de busca de dados mais eficiente especificamente para seu aplicativo nativo do iOS. Este projeto evoluiu para o GraphQL e sua primeira versão foi implantada em 2012 para alimentar o feed de notícias no aplicativo redesenhado do Facebook para iOS. Esta história de origem é chave: o GraphQL não foi um exercício acadêmico. Foi forjado como uma solução prática para um problema de negócios premente, com as necessidades de desempenho do aplicativo cliente como seu driver principal. Dominando as operações: consultas, mutações e assinaturas em seu núcleo, o GraphQL permite que os clientes interajam com a API através de três tipos distintos de operações. Consultas: Para a leitura de dados, uma consulta grafql é uma operação somente leitura usada para solicitar dados do servidor. O cliente especifica declarativamente os campos de dados exatos de que precisa, e o servidor responde com um objeto JSON, onde a estrutura reflete com precisão a consulta. Isso resolve exageros e subestimados em uma única solicitação. Por exemplo, para buscar o nome e o email de um usuário específico, a consulta ficaria assim: Query {Usuário (ID: 123) {Nome email}} Digite Modo de tela Full Screen Sair Modo de tela completa Mutações: Para escrever dados enquanto as consultas são para leitura de dados, mutações são usadas para todas as operações de gravação, como criação, atualização ou desarração de dados. Uma característica crítica é que as mutações em uma única solicitação são garantidas para executar em série, o que evita as condições de raça e torna previsível os efeitos colaterais. Criando um novo usuário aqui, a mutação cria um novo usuário e pede o ID, o nome e o email do usuário recém -criado a ser retornado na resposta. mutação {createUser (entrada: {name: “John Doe”, e -mail: “johndoe@example.com”}) {nome de identificação email}} Digite o modo de tela completa Sair do modo de tela completa Atualizando informações do usuário Esta mutação encontra um usuário por seu ID e atualiza suas informações. A resposta conterá os dados atualizados. Mutação {updateUser (ID: 123, entrada: {Nome: “Jane Smith”, E -mail: “Janesmith@example.com”}) {Nome da identificação Email}}} Digite o modo de tela fullcreen FullScreen Modo Excluindo um usuário Esta mutação exclui um usuário e retorna os dados do usuário que foram removidos. Mutação {DeleteUser (ID: 123) {Id Nome Email}} Digite Modo de tela FullScreen Sair FullScreen Mode Subscrições: Para assinaturas de dados em tempo real, são o terceiro tipo de operação, projetado para lidar com atualizações de dados em tempo real. Um cliente pode se inscrever em eventos específicos no servidor. Quando esse evento ocorre, o servidor empurra os dados atualizados para o cliente em uma conexão de longa duração, normalmente usando o WebSockets. Por exemplo, um cliente pode se inscrever para receber atualizações sempre que um novo comentário for adicionado a uma postagem específica do blog: assinatura {NewComment (postId: “123”) {ID Content Author {Name}}} Digite o modo de tela completa da tela Full. Continue lendo: Link Livereview ajuda você a obter ótimos comentários sobre seu PR/MR em alguns minutos. Economiza horas em todos os relações públicas, dando críticas rápidas e automatizadas de primeira passagem. Se você está cansado de esperar que seu colega revise seu código ou não esteja confiante de que eles fornecerão feedback válido, aqui está o LiveReview para você.
Fonte