Abstract
Currently, GraphQL has emerged as a query language for developing web APIs that propose to improve several data access problems of RESTful APIs. The present paper aims to study the effects on software quality of APIs developed with REST and GraphQL architectures consumed from mobile applications. For this, we design a computational experiment that compares the quality characteristic “performance efficiency" of mobile application consumption to three APIs; one GraphQL API and two REST APIs (one exposes complex queries on several endpoints, the other exposes complex queries on a single endpoint). The results show that the software quality of the API developed with GraphQL architecture is higher than that developed with REST architecture.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
See https://dl.acm.org.
- 2.
- 3.
- 4.
- 5.
See https://dblp.org.
References
Basili, V.R.: Software modeling and measurement: the goal/question/metric paradigm. University of Maryland, Tech. rep. (1994)
Baškarada, S., Nguyen, V., Koronios, A.: Architecting microservices: practical opportunities and challenges. J. Comput. Inf. Syst. 60(5), 1–9 (2018)
Brito, G., Mombach, T., Valente, M.T.: Migrating to GraphQL: a practical assessment. In: SANER 2019 - Proceedings of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering, pp. 140–150. IEEE, Hangzhou (2019). https://doi.org/10.1109/SANER.2019.8667986, https://ieeexplore.ieee.org/abstract/document/8667986/
Brito, G., Valente, M.T.: REST vs GraphQL: a controlled experiment. In: Proceedings - IEEE 17th International Conference on Software Architecture, ICSA 2020, pp. 81–91. Institute of Electrical and Electronics Engineers Inc., Salvador (2020). https://doi.org/10.1109/ICSA47634.2020.00016
Facebook, I.: GraphQL | A query language for your API (2016). https://graphql.org/
Fielding, R.T., Taylor, R.N.: Principled design of the modern web architecture. ACM Trans. Internet Technol. (TOIT) 2(2), 115–150 (2002)
Guevara-Vega, C., Bernardez, B., Duran, A., Quiña-Mera, A., Cruz, M., Ruiz-Cortes, A.: Empirical strategies in software engineering research: a literature survey. In: 2nd International Conference on Information Systems and Software Technologies, ICI2ST 2021. pp. 120–127 (2021). https://doi.org/10.1109/ICI2ST51859.2021.00025
Guo, Y., Deng, F., Yang, X.: Design and implementation of real-time management system architecture based on GraphQL. In: 2018 2nd Annual International Conference on Cloud Technology and Communication Engineering, CTCE 2018, vol. 466, p. 9. Institute of Physics Publishing, Nanjing (2018). https://doi.org/10.1088/1757-899X/466/1/012015, https://stacks.iop.org/1757-899X/466/i=1/a=012015?key=crossref.aea9adb1d7f75507f4831f4bca08dc61
Hartina, D.A., Lawi, A., Enrico Panggabean, L.: Performance Analysis of GraphQL and RESTful in SIM LP2M of the Hasanuddin University. In: The 2nd East Indonesia Conference on Computer and Information Technology (EIConCIT) 2018. pp. 237–240. Institute of Electrical and Electronics Engineers Inc., Indonesia (2018). https://doi.org/10.1109/EIConCIT.2018.8878524, https://ieeexplore.ieee.org/abstract/document/8878524/
ISO/IEC: NTE INEN-ISO/IEC 25010. International organization for standardization, Geneva, Switzerland, 1 edn. (2015)
ISO/IEC: ISO/IEC 25023:2016 Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - Measurement of system and software product quality, vol. 1. International organization for standardization, Geneva, Switzerland, 1 edn. (2016)
Khan, R., Mian, A.N.: Sustainable IoT sensing applications development through GraphQL-based abstraction layer. Electronics (Switzerland) 9(4), 23 (2020). https://doi.org/10.3390/electronics9040564
Kozhevnikov, V., Shergalis, D.: Migrating from REST to GraphQL having long-term supported clients. Theor. Appl. Sci. 93(February), 180–185 (2001). https://dx.doi.org/10.15863/TAS.2021.01.93.31
Lee, E., Kwon, K., Yun, J.: Performance Measurement of GraphQL API in Home ESS Data Server. In: 2020 International Conference on Information and Communication Technology Convergence (ICTC), vol. 2020-Octob, pp. 1929–1931. IEEE, Jeju (2020). https://doi.org/10.1109/ICTC49870.2020.9289569
Mukhiya, S., Rabbi, F., Pun, V., Rutle, A., Lamo, Y.: A GraphQL approach to healthcare information exchange with HL7 FHIR. In: The 9th International Conference on Current and Future Trends of Information and The 9th International Conference on Current and Future Trends of Information and Communication Technologies in Healthcare (ICTH 2019) Communication Technologies in Healthcare, vol. 160, pp. 338–345. Elsevier B.V., Coimbra (2019). https://doi.org/10.1016/j.procs.2019.11.082.
Nogatz, F., Seipel, D.: Implementing GraphQL as a query language for deductive databases in SWI-Prolog using DCGs, quasi quotations, and dicts. In: 30th Workshop on (Constraint) Logic Programming, WLP 2016 and 29th Workshop on (Constraint) Logic Programming, WLP 2015, vol. 234, pp. 42–56. Open Publishing Association, Leipzig (2017). https://doi.org/10.4204/EPTCS.234.4
Pautasso, C.: RESTful web services: principles, patterns, emerging technologies. In: Web Services Foundations, pp. 31–51. Springer, New York (2014). https://doi.org/10.1007/978-1-4614-7518-7_2
Quiña-Mera, A., Fernández-Montes, P., García, J., Bastidas, E., Ruiz-Cortés, A.: Quality in use evaluation of a GraphQL implementation. In: 16th Multidisciplinary International Congress on Science and Technology, CIT 2021. vol. 405 LNNS, pp. 15–27 (2022). https://doi.org/10.1007/978-3-030-96043-8_2
Richardson, L., Amundsen, M., Amundsen, M., Ruby, S.: RESTful Web APIs: Services for a Changing World. O’Reilly Media, Inc., California, USA (2013)
Sayago Heredia, J., Flores-García, E., Solano, A.R.: Comparative analysis between standards oriented to web services: SOAP, REST and GraphQL. In: Botto-Tobar, M., Zambrano Vizuete, M., Torres-Carrión, P., Montes León, S., Pizarro Vásquez, G., Durakovic, B. (eds.) ICAT 2019. CCIS, vol. 1193, pp. 286–300. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-42517-3_22
Seifer, P., Härtel, J., Leinberger, M., Lämmel, R., Staab, S.: Empirical study on the usage of graph query languages in open source Java projects. In: SLE 2019 - Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering, co-located with SPLASH 2019, pp. 152–166. Association for Computing Machinery Inc, Athens (2019). https://doi.org/10.1145/3357766.3359541
Singh, A., Jeyanthi, N.: MVP Architecture model with single endpoint access for displaying COVID 19 patients information dynamically. In: Proceedings - 2020 12th International Conference on Computational Intelligence and Communication Networks, CICN 2020, pp. 471–476. IEEE, Bhimtal (2020). https://doi.org/10.1109/CICN49253.2020.9242573, https://ieeexplore.ieee.org/abstract/document/9242573
Susrama, G., Diyasa, M., Budiwitjaksono, G.S., Amarul, H., Ade, I.: Comparative analysis of rest and GraphQL technology on Nodejs-Based API development. In: 5th International Seminar of Research Month 2020, vol. 2021, pp. 43–52. Nusantara Science and Technology Proceedings, Zoom/Live Streaming Youtube (2021)
The GraphQL Foundation: GraphQL (2018). https://graphql.github.io/graphql-spec/June2018/
Thönes, J.: Microservices. IEEE Softw. 32, 4 (2015). https://doi.org/10.1109/MS.2015.11
Vazquez-Ingelmo, A., Cruz-Benito, J., García-Penalvo, F.: Improving the OEEU’s data-driven technological ecosystem’s interoperability with GraphQL. In: 5th International Conference on Technological Ecosystem for Enhancing Multiculturality, TEEM 2017, vol. Part F1322, p. 8. Association for Computing Machinery, Cadiz (2017). https://doi.org/10.1145/3144826.3145437
Vesić, M., Kojić, N.: Comparative analysis of web application performance in case of using REST versus GraphQL. In: Fourth International Scientific Conference ITEMA 2020, pp. 1–9. Edekom Balkan, ONLINE-Virtual (2020). https://doi.org/10.1163/156854293X00151
Vogel, M., Weber, S., Zirpins, C.: Experiences on migrating RESTful web services to GraphQL. In: Braubach, L., et al. (eds.) ICSOC 2017. LNCS, vol. 10797, pp. 283–295. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-91764-1_23
Wang, S., Keivanloo, I., Zou, Y.: How do developers react to RESTful API evolution? Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) 8831, 245–259 (2014)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Berlin, Heidelberg, 1 edn. (2012). https://doi.org/10.1007/978-3-642-29044-2, https://www.springer.com/la/book/9783642290435
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Quiña-Mera, A., García, J.M., Fernández, P., Vega-Molina, P., Ruiz-Cortés, A. (2022). GraphQL or REST for Mobile Applications?. In: Guarda, T., Portela, F., Augusto, M.F. (eds) Advanced Research in Technologies, Information, Innovation and Sustainability. ARTIIS 2022. Communications in Computer and Information Science, vol 1675. Springer, Cham. https://doi.org/10.1007/978-3-031-20319-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-031-20319-0_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-20318-3
Online ISBN: 978-3-031-20319-0
eBook Packages: Computer ScienceComputer Science (R0)