GraphQL é um idioma de consulta para API e um tempo de execução do lado do servidor para consultas, verificando uma estrutura de classificação para suas informações. O GraphQL não está anexado a uma base de informações ou motor de capacidade específico e é mantido pelo seu código e dados atuais. Uma administração de GraphQL é feita caracterizando tipos e campos nesses tipos, nesse ponto dando capacidades a cada lote em cada tipo. Por exemplo, uma administração graphQL que nos revela quem o cliente assinou é (eu) assim como o nome desse cliente pode ser assim:

GraphQL

 

 

Por que e onde o GraphQL é usado?

Com o GraphQL, o usuário pode se contentar com uma decisão solitária de trazer os dados necessários em vez de construir algumas solicitações REST para obter o equivalente. A escolha de criar com precisão os dados do cliente é uma posição exclusivamente favorável sobre o envio de diferentes chamadas REST para obter o equivalente. Para produzir os dados utilizando chamadas REST seria necessário uma medida em duas fases — Uma para acumular os dados do cliente e trazer os dados sobre a associação que o cliente está relacionado. O GraphQL mitiga este ciclo de dois avanços.

Se você tem assistência relaxante estável, provavelmente não há um caso sólido para jogar a totalidade desse trabalho para fora. Qualquer um desses exemplos poderia ser realizado com um dispositivo alternativo. Eu diria que a utilização do GraphQL seria boa na realização desses exemplos porque a solicitação/controle de informações (inquérito) é dissociada da execução dessas atividades.

 

Como o GraphQL difere do REST e do SABÃO

Embora o REST tenha sido uma espécie de conquista inovadora na zona de design organizado pela API, ele, apesar de tudo, deixou os engenheiros precisando de mais. Quando as pessoas do Facebook começaram a procurar um método alternativo de trazer informações do trabalhador, eles tentaram determinar a questão de sub-obtenção ou sobre-obtenção que as convenções atuais da API tinham. Em REST ou SOAP, uma solicitação para determinadas informações restaurou todas as propriedades relacionadas a ele; mesmo aqueles que o cliente não precisava.

O GraphQL tinha a intenção de lidar com essa questão. No momento em que você faz uma solicitação de informação, você determina o que deseja obter. Tais resultados são realizados através da movimentação das capacidades de definição de informações para o lado do cliente, enquanto no REST, as informações são caracterizadas do lado do trabalhador. Como tal, no design de API REST, o trabalhador representa quais dados devem ser devolvidos, enquanto na API GraphQL, o trabalhador proclama as informações acessíveis e o cliente indica o que deve ser substituído.

 

Vantagens do GraphQL

  • Adequado para sistemas complexos e microsserviços
  • Ele está buscando dados com uma única chamada de API
  • Solicitações de adaptação às suas necessidades
  • Validação e tipo de check-out-of-the-box
  • Documentação de API de autogenerar
  • Evolução da API sem versionar
  • Compartilhamento de código

 

Desvantagens do GraphQL

Uma desvantagem é que as perguntas devolvem consistentemente um código de status HTTP de 200, se o inquérito excessivo era eficaz. Outra desvantagem é a ausência de suporte de armazenamento implícito. Uma vez que as APIs REST têm vários pontos finais, eles podem usar o armazenamento HTTP local para se abster de ativos pré-busca.

 

Ferramentas nativas para melhorar o desempenho da API baseada em GrafQL

 

GraphiQL

Muitas APIs do GraphQL utilizam a ferramenta de código aberto GraphiQL como uma área de jogo inteligente da API. O GraphiQL é o IDE (Integrated Development Environment) para se comunicar com chamadas de API GraphQL, capacitando os designers a questionar informações e realizar transformações. O IDE é geralmente simples de se actualizar. Para desenvolvedores de JS de Node, o express-GraphQL pode, consequentemente, criar o GraphiQL. Uma vez que é baseado em React, GraphiQL também pode ser infundido com um tipo de CSS para marcação personalizada.

 

GraphQL Voyager

Caso você esteja planejando perceber externamente o quão sociais suas informações são, enviá-la para a Voyager pode fazer uma análise divertida. O Explorer pega uma API GraphQL e a transforma em um gráfico. Depois de definir uma construção raiz, você pode ver como campos e tipos estão associados. O Explorer também é inteligente — escolhendo uma espécie de recursos das áreas contidas e conexões com informações importantes dentro do diagrama.

A Voyager fornece uma seção à esquerda que retrata os dados de campo e uma interface visual pela qual os usuários podem se mover. Os clientes também podem agilizar o diagrama dispensando aulas de cobertura do Relay. Além de ser uma maneira legal de visualizar seus dados, o instrumento Voyager poderia ajudar as organizações a imaginar seu modelo de informação e discutir sobre informações sociais. Finalmente, podemos ver o “gráfico” atrás do GraphQL.

 

GrafCMS

O GraphCMS é um CMS (Content Management System, sistema de gerenciamento de conteúdo orientado pela API) que é pessoalmente conectado ao GraphQL, permitindo que os usuários construam um GraphQL facilitado para aplicações web, dando ferramentas para supervisionar o conteúdo. Os clientes caracterizam estruturas de informação, as aprovam no suporte ao GraphQL e vêem o retrato da interface do usuário, tudo dentro de um estágio semelhante.

O GraphCMS pode não ser uma correspondência sólida para uma plataforma de API atual, seria uma boa opção para um blog, aplicativo ou outros aplicativos que exigem a capacidade de compartilhar informações automaticamente. Um CMS baseado no GraphQL seria uma opção fascinante em contraste com outras plataformas CMS populares, como WordPress ou Drupal, e capacitaria uma solução mais adaptável que está pronta para APIs para interfaces de usuário.

 

GraphQL Faker

Se você estiver modelando uma API basci, adicionar algum texto de teste para testes pode ajudar. Os engenheiros podem incorporar informações práticas para copiar resultados genuínos com o Faker. É controlado por Faker.js, capacitando engenheiros a insultar mais de 60 tipos de informações úteis, semelhantes a endereços, nomes e sobrenomes, fotos de símbolos, e isso é apenas o começo. Tudo o que você precisa começar é compor um IDL (GraphQL Interface Definition Language, linguagem de definição de interface graphql), e o Faker dá alguns guias para começar dentro do revisor IDL. É tão fácil quanto adicionar uma ordem a um campo:

tipo Pessoa {

nome: String @fake(tipo: firstName)

gênero: String @examples (valores: [“masculino”, “feminino”])

}

 

Teste de carga uma API baseada em GraphQL com LoadView

O LoadView suporta um recurso de cliente de API de carteiro, permitindo que os usuários enviem solicitações REST, SOAP, WSDL e GraphQL.

Passo 1: Vamos exportar a coleta. Em seguida, importe para LoadView.

Exportação de coleção de carteiro

Passo 2. Faça login no LoadView e selecione Coleção de Carteiros

 

Tipo de teste de carga Carteiro

Passo 3. Importe sua coleção de carteiro e selecione Criar Dispositivo.

Pedido de coleta de carteiro

 

Passo 4: Depois de criar seu dispositivo, você precisará configurar seu cenário de teste. Escolha entre vários tipos de teste de carga – Curva de Passo de Carga, Curva Baseada em Metas e Curva Ajustável Dinâmica. Além disso, você pode definir os locais para seus injetores de carga. Escolha entre mais de 15 locais de todo o mundo.

Tipos de carga de coleta de carteiro

 

Depois que seu teste estiver concluído, você pode visualizar vários dados de desempenho e gráficos, incluindo tempos médios de resposta, erros, métricas de nível de elemento e muito mais.

 

 

Wrap Up: Testes de carga GraphQL Web APIs

Há muito mais APIs de GraphQL que parecem estar subindo a cada dia. Idealmente, com a abordagem de ferramentas como as referenciadas neste artigo, mais empresas podem perceber os benefícios das APIs de GraphQL e testar apis de teste de carga com o LoadView é simples e fácil.

Comece a automatizar seus testes de desempenho de API com o LoadView inscrevendo-se para a avaliação gratuita hoje.

 

 

Logotipo graphQL: Facebook / BSD (http://opensource.org/licenses/bsd-license.php)