Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6

Detalhes bibliográficos
Autor(a) principal: Araújo, Maria Gabrielly de Almeida
Data de Publicação: 2024
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional do IFPE
Texto Completo: https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491
Resumo: Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade.
id IFPE_00d680a27850e7e90c8ba8de9cc4aab8
oai_identifier_str oai:repositorio.ifpe.edu.br:123456789/1491
network_acronym_str IFPE
network_name_str Repositório Institucional do IFPE
repository_id_str
spelling 2025-01-29T18:33:14Z2025-01-29T18:33:14Z2024-12-06https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade.This work aimed to perform a comparative analysis of the performance of RESTful APIs developed with Node.js, .NET, and Go, using the k6 tool to measure response times in different load scenarios. The adopted methodology was experimental, involving the implementation of the APIs in each of the mentioned technologies and the execution of controlled tests in a stable environment. The results showed that ASP.NET Core exhibited the best performance under high request loads, while Node.js was efficient in lower load scenarios. Go, on the other hand, demonstrated a balance between performance and simplicity, making it suitable for applications that require moderate scalability. It is concluded that the choice of technology for developing RESTful APIs should consider the specific usage context and the demand for simultaneous requests, as each platform has distinct advantages in terms of performance and scalability.86f.ARAÚJO, Maria Gabrielly de Almeida. tcc-codes. 2024. Disponível em: https://github.com/mgGabrielly/tcc-codes.git. Acesso em: 01 out. 2024. BITTENCOURT, André Luiz de Moura Ramos. Uma comparação de performance entre arquitetura GraphQL e REST. Brasília: Universidade de Brasília, 2021. 54 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas, Departamento de Ciência da Computação, Universidade de Brasília, 2021. Disponível em: https://bdm.unb.br/bitstream/10483/31169/1/2021_AndreLuizRamosBittencourt_tcc.pdf. Acesso em: 17 ago. 2024. CAMPBELL, Donald T; STANLEY, Julian C. Experimental and quasi-experimental designs for research. [S.l.]: Ravenio Books, 2015. Disponível em: https://www.sfu.ca/~palys/Campbell&Stanley-1959-Exptl&QuasiExptlDesignsForResearch.p df. Acesso em: 23 jun. 2024. CARMO, Klayver Ximenes. Um estudo comparativo entre tecnologias de back-end: Node.js, Django REST Framework e ASP.NET Core. 2023. 106 f. Trabalho de conclusão de curso (Graduação em Engenharia de Computação) Universidade Federal do Ceará, Campus de Sobral, Sobral, 2023. Disponível em: http://repositorio.ufc.br/handle/riufc/77574. Acesso em: 14 ago. 2024. CHIMUCO, Pedro Ventura Lucunde; BARBOSA, Ana Claudia Garcia. Validação de carga em testes de desempenho de APIs de cadastro de usuários: Garantindo qualidade e eficiência com Docker e K6. 2024. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) – Universidade do Extremo Sul Catarinense, Criciúma, 2024. Disponível em: http://repositorio.unesc.net/handle/1/10988. Acesso em: 26 ago. 2024. CHINA, Chrystal R. GraphQL vs. REST API: What’s the difference? IBM Blog, 29 mar. 2024. Disponível em: https://www.ibm.com/blog/graphql-vs-rest-api. Acesso em: 14 ago. 2024. COZBY, P. Métodos de Pesquisa em Ciências do Comportamento. 5. ed. São Paulo: Editora Atlas S.A., 2012. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7920584/mod_resource/content/3/Cozby_P._C._200 3_._Metodos_de_pesquisa_e.pdf. Acesso em: 24 jun. 2024. DALBARD, Axel; ISACSON, Jesper. Comparative study on performance between ASP.NET and Node.js Express for web-based calculation tools. 2021. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1572101&dswid=1215. Acesso em: 17 set. 2024. DEMIR, Dennis; NILSSON, Edward. Performance comparison of REST vs GraphQL in different web environments: Node.js and Python. Västerås: Mälardalen University, 2023. 29 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2023. Disponível em: https://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-121877. Acesso em: 22 ago. 2024. DHALLA, H. K. A performance comparison of RESTful applications implemented in Spring Boot Java and MS.NET Core. Journal of Physics: Conference Series, v. 1933, p. 012041, 2021. Disponível em: https://doi.org/10.1088/1742-6596/1933/1/012041. Acesso em: 22 jun. 2024. ECHO. Echo Documentation. [s.d.]. Disponível em: https://echo.labstack.com/. Acesso em: 17 set. 2024. EHSAN, A.; ABUHALIQA, M. A. M. E.; CATAL, C.; MISHRA, D. RESTful API testing methodologies: rationale, challenges, and solution directions. Applied Sciences, v. 12, n. 9, p. 4369, 2022. DOI: 10.3390/app12094369. Disponível em: https://doi.org/10.3390/app12094369. Acesso em: 17 ago. 2024. FIELDING, Roy et al. Hypertext Transfer Protocol–HTTP/1.1. 1999. Disponível em: https://www.rfc-editor.org/rfc/rfc2616?data1=dwnsb4B&data2=abmurltv2b. Acesso em: 18 ago. 2024. FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Tese (Doutorado em Ciência da Computação) — University of California, Irvine, 2000. Disponível em: https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf. Acesso em: 10 ago. 2024. GO. GO FOR WEB DEVELOPMENT. 2019. Disponível em: https://go.dev/solutions/webdev. Acesso em: 17 set. 2024. GOLMOHAMMADI, A.; ZHANG, M.; ARCURI, A. Testing RESTful APIs: a survey. ACM Transactions on Software Engineering and Methodology, v. 33, n. 1, Art. 27, p. 1-41, nov. 2023. DOI: 10.1145/3617175. GOODWIN, Michael. O que é uma API (interface de programação de aplicativos)? IBM, 09 abr. 2024. Disponível em: https://www.ibm.com/br-pt/topics/api. Acesso em: 12 ago. 2024. GRAFANA. Grafana k6. [s.d.]. Grafana Documentation. Disponível em: https://grafana.com/docs/k6/latest/. Acesso em: 26 ago. 2024. GRAY, D. E. Pesquisa no mundo real. 2. ed. Porto Alegre: Penso, 2012. Disponível em: https://www.academia.edu/24859386/Livro_Pesquisa_no_Mundo_Real_David_E_Gray. Acesso em: 23 jun. 2024. JONSSON, Max; QVARNSTRÖM, Eric. A performance comparison on REST-APIs in Express.js, Flask and ASP.NET Core. Västerås, Sweden: Mälardalen University, 2022. 40 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2022. Disponível em: https://www.diva-portal.org/smash/get/diva2:1669487/FULLTEXT01.pdf. Acesso em: 17 ago. 2024. KARLSSON, Oliver. A performance comparison between ASP.NET Core and Express.js for creating Web APIs. 2021. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1586295&dswid=-8074. Acesso em: 17 set. 2024. KRYLOV, Georgiy; PATROU, Maria; DUECK, Gerhard W.; SIU, Joran. The Evolution of Garbage Collection in V8: Google’s JavaScript Engine. In: 2020 9th Mediterranean Conference on Embedded Computing (MECO), 8-11 junho 2020, Budva, Montenegro. IEEE, 2020. p. 1-8. Disponível em: https://www.doi.org/10.1109/MECO49872.2020.9134326. Acesso em: 22 ago. 2024. LEITE, Gabriel. Saiba o que é JSON e como utilizar. Alura, 05 set. 2023. Disponível em: https://www.alura.com.br/artigos/o-que-e-json. Acesso em: 18 ago. 2023. LOUZADA, Vinícius; CARVALHO, Caroline; LARANJA, Emerson. API: o que é, para quê serve e qual é a sua importância. Alura, 01 mar. 2024. Disponível em: https://www.alura.com.br/artigos/api. Acesso em: 14 ago. 2024. MAIOR, Milton José Vieira Souto. Análise Comparativa de Performance de Frameworks para APIs Rest. 2023. 55 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Informática, Universidade Federal de Pernambuco, 2023. Disponível em:https://repositorio.ufpe.br/bitstream/123456789/50396/9/TCC_MiltonJoseVieiraSoutoMai or_mjvsm.pdf. Acesso em: 18 ago. 2024. MARCONI, M. d. A.; LAKATOS, E. M. Metodologia do trabalho científico. 8ª. ed. São Paulo-SP: Editora Atlas, 2017. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7237618/mod_resource/content/1/Marina%20Marco ni%2C%20Eva%20Lakatos_Fundamentos%20de%20metodologia%20cient%C3%ADfica.pd f. Acesso em: 24 jun. 2024. MASO, Nicolas Nascimento. Comparativo entre arquiteturas de APIs - REST, GraphQL e gRPC. 2024. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Universidade Federal de Santa Catarina, Florianópolis, 2024. Disponível em: https://repositorio.ufsc.br/bitstream/handle/123456789/255699/TCC%20-%20Nicolas%20Nas cimento%20Maso.pdf?sequence=1&isAllowed=y. Acesso em: 28 ago. 2024. MIAZAKI, Alison. GraphQL, REST, RPC e SOAP? Medium, 19 mar. 2021. Disponível em: https://alisonmiazaki.medium.com/graphql-rest-rpc-e-soap-79a361e1a59e. Acesso em: 14 ago. 2024. MICROSOFT. Overview of ASP.NET Core. 2024. Disponível em: https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8. 0. Acesso em: 17 set. 2024. MORAES, Edmilson. K6 x JMeter: comparativo de ferramentas para testes de carga. Blog Vericode, 29 ago. 2023. Disponível em: https://blog.vericode.com.br/ferramentas-teste-de-carga-k6-jmeter/. Acesso em: 26 ago. 2024. MOZILLA. Uma visão geral do HTTP. Disponível em: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview. Acesso em: 18 ago. 2024. NESTJS. Nestjs Documentação. [s.d.]. Disponível em: https://docs.nestjs.com/. Acesso em: 22 ago. 2024. PEREIRA, Caio Ribeiro. Aplicações web real-time com Node.js. São Paulo: Casa do Código, 2014. 202 p. PEROVANO, Dalton Gean. Manual de metodologia da pesquisa científica. 1. ed. Curitiba: Intersaberes, 2016. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. PETROSYAN, A. Global number of internet users 2005-2023. Statista, 22 maio 2024. Disponível em: https://www.statista.com/statistics/273018/number-of-internet-users-worldwide/. Acesso em: 18 set. 2024. PROVDANOV, C. C.; FREITAS, E. C. de. Metodologia do trabalho científico: métodos e técnicas da pesquisa e do trabalho acadêmico. Novo Hamburgo: Feevale, 2013. Disponível em: https://doi.org/10.1017/CBO9781107415324.004. Acesso em: 24. jun. 2024. RAZA, Syed Muhammad Ali. API (Application Programming Interfaces) Types. DEV Community, 10 set. 2023. Disponível em: https://dev.to/syedmuhammadaliraza/api-application-programming-interfaces-types-k3g. Acesso em: 14 ago. 2024. SABO, Mario. NestJS. Osijek, Croácia: Josip Juraj Strossmayer University of Osijek, 2020. 42 f. Trabalho de Conclusão de Curso (Bacharelado em Matemática e Ciência da Computação) – Departamento de Matemática, Josip Juraj Strossmayer University of Osijek, 2020. Documento em croata. Disponível em: https://zir.nsk.hr/islandora/object/mathos:441. Acesso em: 21 ago. 2024. SEVERINO, A. J. Metodologia do Trabalho científico. São Paulo: Cortez Editora, 2017. ISBN 978- 8524925207. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. SHKODRA, Endrit; JAJAGA, Edmond; SHALA, Mehmet. Development and performance analysis of RESTful APIs in Core and Node.js using MongoDB database. In: Proceedings of the 17th International Conference on Web Information Systems and Technologies (WEBIST 2021), SciTePress, p. 227-234, 2021. Disponível em: https://www.scitepress.org/Papers/2021/106212/106212.pdf. Acesso em: 18 set. 2024. SOUZA, Estêvão Henrique Cangussú de et al. Estudo comparativo de desempenho entre API desenvolvida com Spring WebFlux e Node.js. II Worktec - Workshop de Tecnologia da Fatec Ribeirão Preto, [S. l.], v. 1, p. 1-2, 3 ago. 2020. Disponível em: http://www.fatecrp.edu.br/WorkTec/edicoes/2020-2/index.html. Acesso em: 13 ago. 2024. SRIVASTAVA, Anushka. CRUD API. 2023. Trabalho de Conclusão de Curso (Bacharelado em Engenharia da Computação) – Jaypee University of Information Technology, Himachal Pradesh, 2023. Disponível em: http://www.ir.juit.ac.in:8080/jspui/handle/123456789/9864. Acesso em: 17 set. 2024. TELLES, Diego. Princípios de uma API REST. 2023. Disponível em: https://unicorncoder.medium.com/princ%C3%ADpios-de-uma-api-rest-c8e08c2ba331. Acesso em: 18 ago. 2024. TROCHIM, W.; DONNELLY, J. P. The Research Methods Knowledge Base: Types of designs. 2020. WebRef. Disponível em: https://faculty.cengage.com/titles/9781133954774. Acesso em: 25 jun. 2024. Yin, R. K. Estudo de caso: planejamento e métodos. Syria Studies, v. 7, n. 1, 2004. Disponível em: http://maratavarespsictics.pbworks.com/w/file/fetch/74304716/3-YIN-planejamento_metodol ogia.pdf. Acesso em: 25 jun. 2024An error occurred on the license name.An error occurred getting the license - uri.info:eu-repo/semantics/openAccessCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAODesenvolvimento de SoftwareAplicações web - desempenhoTecnologia da informaçãoSistemas de informaçãoAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisNascimento, Jobson Tenório dohttp://lattes.cnpq.br/0354768265096456Torres, Elton BezerraSilva, José Fernando dahttp://lattes.cnpq.br/0943345989607946http://lattes.cnpq.br/5610501420140902http://lattes.cnpq.br/4963392179808067Araújo, Maria Gabrielly de AlmeidaBrasilBelo Jardimporreponame:Repositório Institucional do IFPEinstname:Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)instacron:IFPEORIGINALAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdfAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdfapplication/pdf9177639https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/1/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf5c4eb72d8c3ecf3ab394e0867be5b4a8MD51open accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/2/license_rdfd41d8cd98f00b204e9800998ecf8427eMD52open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/3/license.txt8a4605be74aa9ea9d79846c1fba20a33MD53open accessTEXTAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.txtAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.txtExtracted texttext/plain154370https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/4/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.txt0de94087ffc31d2f63595b4aac33a52eMD54open accessTHUMBNAILAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.jpgAnálise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6.pdf.jpgIM Thumbnailimage/jpeg4858https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/5/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.jpg25648b9908b2cc8916ef6274924ce862MD55open access123456789/14912025-01-30 03:01:30.344open accessoai:repositorio.ifpe.edu.br:123456789/1491Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ifpe.edu.br/oai/requestrepositorioifpe@reitoria.ifpe.edu.bropendoar:2025-01-30T06:01:30Repositório Institucional do IFPE - Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)false
dc.title.pt_BR.fl_str_mv Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
title Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
spellingShingle Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
Araújo, Maria Gabrielly de Almeida
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Desenvolvimento de Software
Aplicações web - desempenho
Tecnologia da informação
Sistemas de informação
title_short Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
title_full Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
title_fullStr Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
title_full_unstemmed Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
title_sort Análise comparativa de desempenho de APIs RESTful em Node.js, .NET e Go com K6
author Araújo, Maria Gabrielly de Almeida
author_facet Araújo, Maria Gabrielly de Almeida
author_role author
dc.contributor.advisor1.fl_str_mv Nascimento, Jobson Tenório do
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/0354768265096456
dc.contributor.referee1.fl_str_mv Torres, Elton Bezerra
dc.contributor.referee2.fl_str_mv Silva, José Fernando da
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/0943345989607946
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/5610501420140902
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/4963392179808067
dc.contributor.author.fl_str_mv Araújo, Maria Gabrielly de Almeida
contributor_str_mv Nascimento, Jobson Tenório do
Torres, Elton Bezerra
Silva, José Fernando da
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Desenvolvimento de Software
Aplicações web - desempenho
Tecnologia da informação
Sistemas de informação
dc.subject.por.fl_str_mv Desenvolvimento de Software
Aplicações web - desempenho
Tecnologia da informação
Sistemas de informação
description Este trabalho teve como objetivo realizar uma análise comparativa de desempenho de APIs RESTful desenvolvidas com Node.js, .NET e Go, utilizando a ferramenta k6 para medir o tempo de resposta em diferentes cenários de carga. A metodologia adotada foi de caráter experimental, com a implementação das APIs em cada uma das tecnologias mencionadas e a execução de testes controlados em um ambiente estável. Os resultados obtidos mostraram que o ASP.NET Core apresentou o melhor desempenho sob altas cargas de requisições, enquanto o Node.js foi eficiente em cenários de menor carga. A tecnologia Go, por sua vez, demonstrou um equilíbrio entre desempenho e simplicidade, sendo adequada para aplicações que exigem escalabilidade moderada. Conclui-se que a escolha da tecnologia para o desenvolvimento de APIs RESTful deve considerar o contexto específico de uso e a demanda de requisições simultâneas, uma vez que cada plataforma possui vantagens distintas em termos de desempenho e escalabilidade.
publishDate 2024
dc.date.issued.fl_str_mv 2024-12-06
dc.date.accessioned.fl_str_mv 2025-01-29T18:33:14Z
dc.date.available.fl_str_mv 2025-01-29T18:33:14Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491
url https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1491
dc.language.iso.fl_str_mv por
language por
dc.relation.pt_BR.fl_str_mv ARAÚJO, Maria Gabrielly de Almeida. tcc-codes. 2024. Disponível em: https://github.com/mgGabrielly/tcc-codes.git. Acesso em: 01 out. 2024. BITTENCOURT, André Luiz de Moura Ramos. Uma comparação de performance entre arquitetura GraphQL e REST. Brasília: Universidade de Brasília, 2021. 54 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Instituto de Ciências Exatas, Departamento de Ciência da Computação, Universidade de Brasília, 2021. Disponível em: https://bdm.unb.br/bitstream/10483/31169/1/2021_AndreLuizRamosBittencourt_tcc.pdf. Acesso em: 17 ago. 2024. CAMPBELL, Donald T; STANLEY, Julian C. Experimental and quasi-experimental designs for research. [S.l.]: Ravenio Books, 2015. Disponível em: https://www.sfu.ca/~palys/Campbell&Stanley-1959-Exptl&QuasiExptlDesignsForResearch.p df. Acesso em: 23 jun. 2024. CARMO, Klayver Ximenes. Um estudo comparativo entre tecnologias de back-end: Node.js, Django REST Framework e ASP.NET Core. 2023. 106 f. Trabalho de conclusão de curso (Graduação em Engenharia de Computação) Universidade Federal do Ceará, Campus de Sobral, Sobral, 2023. Disponível em: http://repositorio.ufc.br/handle/riufc/77574. Acesso em: 14 ago. 2024. CHIMUCO, Pedro Ventura Lucunde; BARBOSA, Ana Claudia Garcia. Validação de carga em testes de desempenho de APIs de cadastro de usuários: Garantindo qualidade e eficiência com Docker e K6. 2024. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) – Universidade do Extremo Sul Catarinense, Criciúma, 2024. Disponível em: http://repositorio.unesc.net/handle/1/10988. Acesso em: 26 ago. 2024. CHINA, Chrystal R. GraphQL vs. REST API: What’s the difference? IBM Blog, 29 mar. 2024. Disponível em: https://www.ibm.com/blog/graphql-vs-rest-api. Acesso em: 14 ago. 2024. COZBY, P. Métodos de Pesquisa em Ciências do Comportamento. 5. ed. São Paulo: Editora Atlas S.A., 2012. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7920584/mod_resource/content/3/Cozby_P._C._200 3_._Metodos_de_pesquisa_e.pdf. Acesso em: 24 jun. 2024. DALBARD, Axel; ISACSON, Jesper. Comparative study on performance between ASP.NET and Node.js Express for web-based calculation tools. 2021. Trabalho de Conclusão de Curso (Graduação em Engenharia da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1572101&dswid=1215. Acesso em: 17 set. 2024. DEMIR, Dennis; NILSSON, Edward. Performance comparison of REST vs GraphQL in different web environments: Node.js and Python. Västerås: Mälardalen University, 2023. 29 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2023. Disponível em: https://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-121877. Acesso em: 22 ago. 2024. DHALLA, H. K. A performance comparison of RESTful applications implemented in Spring Boot Java and MS.NET Core. Journal of Physics: Conference Series, v. 1933, p. 012041, 2021. Disponível em: https://doi.org/10.1088/1742-6596/1933/1/012041. Acesso em: 22 jun. 2024. ECHO. Echo Documentation. [s.d.]. Disponível em: https://echo.labstack.com/. Acesso em: 17 set. 2024. EHSAN, A.; ABUHALIQA, M. A. M. E.; CATAL, C.; MISHRA, D. RESTful API testing methodologies: rationale, challenges, and solution directions. Applied Sciences, v. 12, n. 9, p. 4369, 2022. DOI: 10.3390/app12094369. Disponível em: https://doi.org/10.3390/app12094369. Acesso em: 17 ago. 2024. FIELDING, Roy et al. Hypertext Transfer Protocol–HTTP/1.1. 1999. Disponível em: https://www.rfc-editor.org/rfc/rfc2616?data1=dwnsb4B&data2=abmurltv2b. Acesso em: 18 ago. 2024. FIELDING, Roy Thomas. Architectural styles and the design of network-based software architectures. 2000. Tese (Doutorado em Ciência da Computação) — University of California, Irvine, 2000. Disponível em: https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf. Acesso em: 10 ago. 2024. GO. GO FOR WEB DEVELOPMENT. 2019. Disponível em: https://go.dev/solutions/webdev. Acesso em: 17 set. 2024. GOLMOHAMMADI, A.; ZHANG, M.; ARCURI, A. Testing RESTful APIs: a survey. ACM Transactions on Software Engineering and Methodology, v. 33, n. 1, Art. 27, p. 1-41, nov. 2023. DOI: 10.1145/3617175. GOODWIN, Michael. O que é uma API (interface de programação de aplicativos)? IBM, 09 abr. 2024. Disponível em: https://www.ibm.com/br-pt/topics/api. Acesso em: 12 ago. 2024. GRAFANA. Grafana k6. [s.d.]. Grafana Documentation. Disponível em: https://grafana.com/docs/k6/latest/. Acesso em: 26 ago. 2024. GRAY, D. E. Pesquisa no mundo real. 2. ed. Porto Alegre: Penso, 2012. Disponível em: https://www.academia.edu/24859386/Livro_Pesquisa_no_Mundo_Real_David_E_Gray. Acesso em: 23 jun. 2024. JONSSON, Max; QVARNSTRÖM, Eric. A performance comparison on REST-APIs in Express.js, Flask and ASP.NET Core. Västerås, Sweden: Mälardalen University, 2022. 40 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – School of Innovation, Design and Engineering, Mälardalen University, 2022. Disponível em: https://www.diva-portal.org/smash/get/diva2:1669487/FULLTEXT01.pdf. Acesso em: 17 ago. 2024. KARLSSON, Oliver. A performance comparison between ASP.NET Core and Express.js for creating Web APIs. 2021. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Jönköping University, Jönköping, 2021. Disponível em: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A1586295&dswid=-8074. Acesso em: 17 set. 2024. KRYLOV, Georgiy; PATROU, Maria; DUECK, Gerhard W.; SIU, Joran. The Evolution of Garbage Collection in V8: Google’s JavaScript Engine. In: 2020 9th Mediterranean Conference on Embedded Computing (MECO), 8-11 junho 2020, Budva, Montenegro. IEEE, 2020. p. 1-8. Disponível em: https://www.doi.org/10.1109/MECO49872.2020.9134326. Acesso em: 22 ago. 2024. LEITE, Gabriel. Saiba o que é JSON e como utilizar. Alura, 05 set. 2023. Disponível em: https://www.alura.com.br/artigos/o-que-e-json. Acesso em: 18 ago. 2023. LOUZADA, Vinícius; CARVALHO, Caroline; LARANJA, Emerson. API: o que é, para quê serve e qual é a sua importância. Alura, 01 mar. 2024. Disponível em: https://www.alura.com.br/artigos/api. Acesso em: 14 ago. 2024. MAIOR, Milton José Vieira Souto. Análise Comparativa de Performance de Frameworks para APIs Rest. 2023. 55 f. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Centro de Informática, Universidade Federal de Pernambuco, 2023. Disponível em:https://repositorio.ufpe.br/bitstream/123456789/50396/9/TCC_MiltonJoseVieiraSoutoMai or_mjvsm.pdf. Acesso em: 18 ago. 2024. MARCONI, M. d. A.; LAKATOS, E. M. Metodologia do trabalho científico. 8ª. ed. São Paulo-SP: Editora Atlas, 2017. Disponível em: https://edisciplinas.usp.br/pluginfile.php/7237618/mod_resource/content/1/Marina%20Marco ni%2C%20Eva%20Lakatos_Fundamentos%20de%20metodologia%20cient%C3%ADfica.pd f. Acesso em: 24 jun. 2024. MASO, Nicolas Nascimento. Comparativo entre arquiteturas de APIs - REST, GraphQL e gRPC. 2024. Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) – Universidade Federal de Santa Catarina, Florianópolis, 2024. Disponível em: https://repositorio.ufsc.br/bitstream/handle/123456789/255699/TCC%20-%20Nicolas%20Nas cimento%20Maso.pdf?sequence=1&isAllowed=y. Acesso em: 28 ago. 2024. MIAZAKI, Alison. GraphQL, REST, RPC e SOAP? Medium, 19 mar. 2021. Disponível em: https://alisonmiazaki.medium.com/graphql-rest-rpc-e-soap-79a361e1a59e. Acesso em: 14 ago. 2024. MICROSOFT. Overview of ASP.NET Core. 2024. Disponível em: https://learn.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8. 0. Acesso em: 17 set. 2024. MORAES, Edmilson. K6 x JMeter: comparativo de ferramentas para testes de carga. Blog Vericode, 29 ago. 2023. Disponível em: https://blog.vericode.com.br/ferramentas-teste-de-carga-k6-jmeter/. Acesso em: 26 ago. 2024. MOZILLA. Uma visão geral do HTTP. Disponível em: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview. Acesso em: 18 ago. 2024. NESTJS. Nestjs Documentação. [s.d.]. Disponível em: https://docs.nestjs.com/. Acesso em: 22 ago. 2024. PEREIRA, Caio Ribeiro. Aplicações web real-time com Node.js. São Paulo: Casa do Código, 2014. 202 p. PEROVANO, Dalton Gean. Manual de metodologia da pesquisa científica. 1. ed. Curitiba: Intersaberes, 2016. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. PETROSYAN, A. Global number of internet users 2005-2023. Statista, 22 maio 2024. Disponível em: https://www.statista.com/statistics/273018/number-of-internet-users-worldwide/. Acesso em: 18 set. 2024. PROVDANOV, C. C.; FREITAS, E. C. de. Metodologia do trabalho científico: métodos e técnicas da pesquisa e do trabalho acadêmico. Novo Hamburgo: Feevale, 2013. Disponível em: https://doi.org/10.1017/CBO9781107415324.004. Acesso em: 24. jun. 2024. RAZA, Syed Muhammad Ali. API (Application Programming Interfaces) Types. DEV Community, 10 set. 2023. Disponível em: https://dev.to/syedmuhammadaliraza/api-application-programming-interfaces-types-k3g. Acesso em: 14 ago. 2024. SABO, Mario. NestJS. Osijek, Croácia: Josip Juraj Strossmayer University of Osijek, 2020. 42 f. Trabalho de Conclusão de Curso (Bacharelado em Matemática e Ciência da Computação) – Departamento de Matemática, Josip Juraj Strossmayer University of Osijek, 2020. Documento em croata. Disponível em: https://zir.nsk.hr/islandora/object/mathos:441. Acesso em: 21 ago. 2024. SEVERINO, A. J. Metodologia do Trabalho científico. São Paulo: Cortez Editora, 2017. ISBN 978- 8524925207. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 24 jun. 2024. SHKODRA, Endrit; JAJAGA, Edmond; SHALA, Mehmet. Development and performance analysis of RESTful APIs in Core and Node.js using MongoDB database. In: Proceedings of the 17th International Conference on Web Information Systems and Technologies (WEBIST 2021), SciTePress, p. 227-234, 2021. Disponível em: https://www.scitepress.org/Papers/2021/106212/106212.pdf. Acesso em: 18 set. 2024. SOUZA, Estêvão Henrique Cangussú de et al. Estudo comparativo de desempenho entre API desenvolvida com Spring WebFlux e Node.js. II Worktec - Workshop de Tecnologia da Fatec Ribeirão Preto, [S. l.], v. 1, p. 1-2, 3 ago. 2020. Disponível em: http://www.fatecrp.edu.br/WorkTec/edicoes/2020-2/index.html. Acesso em: 13 ago. 2024. SRIVASTAVA, Anushka. CRUD API. 2023. Trabalho de Conclusão de Curso (Bacharelado em Engenharia da Computação) – Jaypee University of Information Technology, Himachal Pradesh, 2023. Disponível em: http://www.ir.juit.ac.in:8080/jspui/handle/123456789/9864. Acesso em: 17 set. 2024. TELLES, Diego. Princípios de uma API REST. 2023. Disponível em: https://unicorncoder.medium.com/princ%C3%ADpios-de-uma-api-rest-c8e08c2ba331. Acesso em: 18 ago. 2024. TROCHIM, W.; DONNELLY, J. P. The Research Methods Knowledge Base: Types of designs. 2020. WebRef. Disponível em: https://faculty.cengage.com/titles/9781133954774. Acesso em: 25 jun. 2024. Yin, R. K. Estudo de caso: planejamento e métodos. Syria Studies, v. 7, n. 1, 2004. Disponível em: http://maratavarespsictics.pbworks.com/w/file/fetch/74304716/3-YIN-planejamento_metodol ogia.pdf. Acesso em: 25 jun. 2024
dc.rights.driver.fl_str_mv An error occurred on the license name.
An error occurred getting the license - uri.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv An error occurred on the license name.
An error occurred getting the license - uri.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 86f.
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Belo Jardim
dc.source.none.fl_str_mv reponame:Repositório Institucional do IFPE
instname:Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)
instacron:IFPE
instname_str Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)
instacron_str IFPE
institution IFPE
reponame_str Repositório Institucional do IFPE
collection Repositório Institucional do IFPE
bitstream.url.fl_str_mv https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/1/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf
https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/2/license_rdf
https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/3/license.txt
https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/4/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.txt
https://repositorio.ifpe.edu.br/xmlui/bitstream/123456789/1491/5/An%c3%a1lise%20comparativa%20de%20desempenho%20de%20APIs%20RESTful%20em%20Node.js%2c%20.NET%20e%20Go%20com%20K6.pdf.jpg
bitstream.checksum.fl_str_mv 5c4eb72d8c3ecf3ab394e0867be5b4a8
d41d8cd98f00b204e9800998ecf8427e
8a4605be74aa9ea9d79846c1fba20a33
0de94087ffc31d2f63595b4aac33a52e
25648b9908b2cc8916ef6274924ce862
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional do IFPE - Instituto Federal de Educação, Ciência e Tecnologia de Pernambuco (IFPE)
repository.mail.fl_str_mv repositorioifpe@reitoria.ifpe.edu.br
_version_ 1844170748930818048