Comparison of REST and GraphQL web technology performance
The aim of the study was to compare the performance of two data exchange styles commonly used in web applications, i.e. REST and GraphQL. For the purposes of the study two test applications were developed containing the same functionalities, one of which was REST and the other one was GraphQL. They were used for performance tests done with the help of the JMeter tool, during which measurements of the total processing time of requests and the volume of data downloaded and sent were performed. An experiment was developed that tested the basic operations found in most network services: display, add, update, and delete data. The most attention was devoted to the information display operation in the case of which load tests were done. On the basis of performed studies and obtained results, no differences in performance during the operation of adding, editing and deleting data by applications based on REST API and GraphQL were found. During the display operation under heavy load conditions and while downloading small portions of data, the service using GraphQL had a better performance. When downloading large portions of data, the REST-based service exhibited a higher performance.
REST; GraphQL; web service; performance testing
R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, Ph.D, University of California, Irvine, 2000.
R. T. Fielding, R. N. Taylor, Principled design of the modern Web architecture, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium, Limerick, Ireland, 2000: 407-416, https://doi.org/10.1145/337180.337228, [10.07.2020].
G. Brito, M. T. Valente, REST vs GraphQL: A Controlled Experiment, IEEE International Conference on Software Architecture (ICSA), 2020:81-91, https://arxiv.org/pdf/2003.04761.pdf, [10.07.2020].
GraphQL, http://spec.graphql.org/, [10.07.2020].
M. Prywata, Testowanie aplikacji i stron internetowych, Polska Agencja Rozwoju przedsiębiorczości, Warszawa, 2009, https://www.parp.gov.pl/storage/publications/pdf/e573677e52bf037b137c41a7b0182372.pdf, [09.07.2020].
S. Shamila, E. Ramadevi, Analysis of Performance Testing on Web Application, International Journal of Advanced Research in Computer and Communication Engineering, Vol. 3, Issue 3 (2014), https://ijarcce.com/wp-content/uploads/2012/03/IJARCCE4H-s-sharmila-Analysis-of-Performance-Testing-on-Web-Applications.pdf, [10.07.2020].
P. Marek, Weryfikacja i automatyzacja procesu testowania oprogramowania, CORE Magazine, 2010.
S. Dhiman, P. Sharma, Performance Testing: A Comparative Study and Analysis of Web Service Testing Tools, International Journal of Computer Science and Mobile Computing, Vol. 5, Issue 6, (2016) 507-512, https://www.ijcsmc.com/docs/papers/June2016/V5I6201697.pdf, [09.07.2020].
Apache JMeter, http://jmeter.apache.org/, [09.07.2020].
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.