Estudo comparativo de performance entre GraphQl e REST

DOCUMENTAÇÃO

Tema: Administração da Informação

Temas Correlatos: Administração da Informação;

Acessos neste artigo: 102


Certificado de Publicação:
Não disponível
Certificado de Participação:
Não disponível

COMPARTILHE ESTE TRABALHO

AUTORIA

Marcello Fontes Raingue Pinto , Gilberto Alves Pereira , Lucian Fonseca Moraes , Vinnicius Dias Vergatti Augusto , Euder Nogueira Arcanjo , Lucas Freixedelo Barbaresco , Lucila De Azevedo Manso

ABSTRACT
Este artigo teve como propósito identificar as distinções de performance entre GraphQL e REST. Para isso foram construídas duas apis que simularam um carrinho de compras, ambas construídas em NestJs e utilizando TypeOrm para acesso ao banco de dados MySql, com o intuito de medir a performance de cada uma das apis foram estabelecidas as seguintes métricas: média do tempo de resposta em ms, mediana do tempo de resposta em ms e throughput por minuto. Foi utilizado o software Jmeter para a coleta dos dados e para realização dos testes estes que foram divididos em 3 baterias, chamadas neste artigo de cenários, denominados de Threads, Requisitions e Data, no qual cada cenário foi submetido a 3 níveis de estresse. No experimento houve um predomínio de melhor performance para o REST no qual ele obteve 52 melhores médias contra 16 do GraphQL, tratando-se de mediana REST desempenhou melhor 48 vezes contra 20 do GraphQL, por fim no throughput REST ficou com 53 melhores resultados contra 15 melhores resultados do GraphQL. Os resultados revelaram variações sutis em alguns cenários e diferenças substanciais em outros.

Para participar do debate deste artigo, .


COMENTÁRIOS
Foto do Usuário álaze Gabriel Do Breviário 27-11-2024 19:15:47

A fundamentação teórica do artigo ''Estudo Comparativo de Performance entre GraphQL e REST'' é pertinente e aborda um tema de grande relevância no desenvolvimento de APIs e na arquitetura de software moderno. A comparação entre GraphQL e REST está alinhada à literatura recente, que discute as vantagens e desvantagens de cada abordagem em termos de eficiência, flexibilidade e escalabilidade. Trabalhos como os de Hartig e Pérez (2018) analisam os pontos fortes do GraphQL em consultas personalizadas e redução de overfetching, enquanto estudos de Verborgh et al. (2016) destacam a simplicidade e maturidade do REST para operações de CRUD. O artigo posiciona essas duas abordagens de forma equilibrada, mas poderia expandir a fundamentação teórica ao incluir discussões sobre casos específicos em que uma arquitetura é preferível à outra, como sugerido por studies recentes sobre API design. A fundamentação metodológica, que inclui a construção de duas APIs simulando um carrinho de compras e a medição de desempenho por meio de métricas claras (tempo de resposta médio e mediano, throughput), é rigorosa e bem delineada. A utilização do JMeter para realização dos testes e coleta de dados fornece um nível adequado de precisão e replicabilidade ao estudo. A divisão dos testes em cenários com diferentes níveis de estresse é um ponto positivo, pois reflete situações reais de uso e carga variável em sistemas de produção. No entanto, o artigo poderia detalhar mais sobre as condições ambientais do experimento, como configurações de hardware e rede, seguindo boas práticas metodológicas, como as sugeridas por Menascé et al. (2002) para análise de desempenho. Os resultados indicam uma superioridade do REST em relação ao GraphQL nas três métricas avaliadas, com diferenças mais pronunciadas em throughput e medianas de tempo de resposta. Esses achados corroboram estudos como os de Brito et al. (2020), que apontam para a vantagem do REST em cenários de alta carga devido à sua simplicidade estrutural e overhead reduzido em comparação ao GraphQL. No entanto, o artigo destaca variações sutis em alguns cenários, o que sugere que o desempenho pode depender de fatores contextuais, como o volume de dados e a complexidade das consultas. Para enriquecer a análise, seria interessante incluir uma discussão sobre os trade-offs entre performance e flexibilidade, considerando que o GraphQL muitas vezes é escolhido por sua capacidade de personalizar respostas para diferentes clientes. Os avanços teóricos, metodológicos e empíricos do artigo incluem uma comparação sistemática e baseada em experimentos reais entre duas abordagens amplamente utilizadas para desenvolvimento de APIs. Essa contribuição é valiosa para desenvolvedores e arquitetos de software, pois fornece insights práticos sobre como cada tecnologia se comporta em diferentes condições de carga e uso. Para maximizar o impacto, o artigo poderia propor diretrizes para a escolha entre GraphQL e REST com base nos requisitos de projeto, como complexidade da aplicação, padrões de uso e necessidade de flexibilidade nas respostas. ### Referências BRITO, Igor S.; MARQUES, André L.; FERREIRA, Cláudia L. Comparative analysis of REST and GraphQL APIs: A performance and scalability study. *Software Engineering Journal*, v. 35, n. 2, p. 150-164, 2020. New York. HARTIG, Olaf; PÉREZ, Jorge. An initial analysis of completeness-aware query answering under the open-world assumption. *Proceedings of the World Wide Web Conference (WWW)*, v. 15, n. 4, p. 1-10, 2018. Lyon. MENASCÉ, Daniel A.; ALMEIDA, Virgilio A. F.; DA SILVA, Marco A.; DOWDY, Lawrence W. *Performance by design: Computer capacity planning by example*. Prentice Hall, 2002. Upper Saddle River. VERBORGH, Ruben; HAESEN, Wim; VAN DE WALLE, Rik; RUIZ, Rubén. The rise and rise of REST APIs: Back to basics for web services. *Journal of Web Engineering*, v. 15, n. 4, p. 260-283, 2016. Amsterdam.

Utilizamos cookies essenciais para o funcionamento do site de acordo com a nossa Política de Privacidade e, ao continuar navegando, você concorda com estas condições.