Skip navigation
Use este identificador para citar ou linkar para este item: https://repositorio.ufpe.br/handle/123456789/52936

Compartilhe esta página

Registro completo de metadados
Campo DCValorIdioma
dc.contributor.advisorBORBA, Paulo Henrique Monteiro-
dc.contributor.authorSIMÕES, Igor Beltrão Pereira-
dc.date.accessioned2023-10-16T12:20:48Z-
dc.date.available2023-10-16T12:20:48Z-
dc.date.issued2023-10-02-
dc.date.submitted2023-10-09-
dc.identifier.citationSIMÕES, Igor Beltrão Pereira. Comparando soluções para o problema de N+1 queries com APIs GraphQL em Ruby on Rails. 2023. 14 f. TCC (Graduação) - Curso de Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2023.pt_BR
dc.identifier.urihttps://repositorio.ufpe.br/handle/123456789/52936-
dc.description.abstractAtualmente, APIs (Application Programming Interface) enfrentam desafios comuns relacionados ao problema de N+1 queries, como as APIs GraphQL escritas em Ruby on Rails (Rails). Este problema pode impactar significativamente a eficiência e a performance das aplicações. No entanto, existem diversas soluções que têm sido exploradas para contornar essa questão. Dentro do ecossistema Rails, soluções nativas são frequentemente adotadas. O Active Record, um ORM (Object-Relational Mapping) utilizado pelo Rails, possui um método chamado includes. Esse método précarrega associações entre objetos, o que minimiza a quantidade de queries ao banco de dados. Além disso, algumas gems têm ganhado destaque no combate ao problema de N+1 queries em GraphQL. Gems, no contexto do Ruby, são pacotes de código que fornecem funcionalidades específicas, funcionando como bibliotecas que podem ser facilmente adicionados a projetos Ruby. Entre elas, podemos destacar a graphql-batch e a batch-loader. Ambas oferecem ferramentas poderosas para agrupar e resolver queries de maneira mais eficiente, eliminando a necessidade de múltiplas consultas individuais ao banco de dados. Ao desenvolver ou otimizar APIs GraphQL em Rails, é essencial considerar estas soluções e avaliar qual se encaixa melhor no contexto da aplicação, tendo em vista os prós e contras de cada abordagem e a necessidade de performance do sistema. Para aprofundar nossa compreensão, as soluções foram implementadas e testadas considerando métricas quantitativas, como o tempo total de execução, e qualitativas, como flexibilidade e usabilidade. Em conclusão, enquanto cada solução pode ter suas vantagens e desvantagens, a escolha ideal para abordar o problema de N+1 queries em APIs GraphQL em Rails deve levar em consideração as especificidades e necessidades de cada projeto. Neste estudo, esperamos fornecer uma base sólida para tomada de decisão para desenvolvedores e equipes que enfrentam desafios semelhantes.pt_BR
dc.description.sponsorshipOutrospt_BR
dc.format.extent14p.pt_BR
dc.language.isoporpt_BR
dc.rightsopenAccesspt_BR
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/*
dc.subjectGraphQLpt_BR
dc.subjectRuby on Railspt_BR
dc.subjectAPIspt_BR
dc.subjectN+1 Queriespt_BR
dc.titleComparando soluções para o problema de N+1 queries com APIs GraphQL em Ruby on Railspt_BR
dc.typebachelorThesispt_BR
dc.degree.levelGraduacaopt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/9395715443254344pt_BR
dc.description.abstractxCurrently, APIs (Application Programming Interface) face common challenges related to the N+1 queries problem, like GraphQL APIs written in Ruby on Rails (Rails). This issue can significantly impact the efficiency and performance of applications. However, several solutions have been explored to address this matter. Within the Rails ecosystem, native solutions are often adopted. The Active Record, an ORM (Object-Relational Mapping) used by Rails, has a method called includes. This method pre-loads associations between objects, which minimizes the number of queries to the database. Moreover, some gems have gained prominence in tackling the N+1 queries problem in GraphQL. Gems, in the context of Ruby, are code packages that provide specific functionalities, acting as libraries that can be easily added to Ruby projects. Notably among them are graphql-batch and batch-loader. Both provide powerful tools for batching and resolving queries more efficiently, eliminating the need for multiple individual database queries. When developing or optimizing GraphQL APIs in Rails, it’s crucial to consider these solutions and evaluate which fits best within the application’s context, considering the pros and cons of each approach and the system’s performance requirements. To deepen our understanding, the solutions were implemented and tested, considering quantitative metrics, such as the total execution time in milliseconds, and qualitative ones, like flexibility and usability. In conclusion, while each solution may have its pros and cons, the ideal choice for addressing the N+1 queries problem in GraphQL APIs in Rails should take into account the specificities and needs of each project. With this study, we hope to provide a solid foundation for decision-making for developers and teams facing similar challenges.pt_BR
dc.subject.cnpqÁreas::Ciências Exatas e da Terra::Ciência da Computaçãopt_BR
dc.degree.departament::(CIN-DCC) - Departamento de Ciência da Computaçãopt_BR
dc.degree.graduation::CIn-Curso de Ciência da Computaçãopt_BR
dc.degree.grantorUniversidade Federal de Pernambucopt_BR
dc.degree.localRecifept_BR
Aparece nas coleções:(TCC) - Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
TCC Igor Beltrão Pereira Simões.pdf4.67 MBAdobe PDFThumbnail
Visualizar/Abrir


Este arquivo é protegido por direitos autorais



Este item está licenciada sob uma Licença Creative Commons Creative Commons