Architectural Design of Representational State Transfer Application Programming Interface with Application-Level Base64-Encoding and Zlib Data Compression
DOI:
https://doi.org/10.25126/jitecs.202383619Abstract
Representational State Transfer (REST) is an architectural style that underlies the protocol of HyperText Transfer Protocol (HTTP)
and is used by web applications. The implementation of REST principles in web services is often known as RESTful API. The standard communication used in RESTful APIs uses HTTP without involving data compression. There are quite a lot of RESTful API clients in the form of mobile applications that use metered networks. Thus, reducing the required bandwidth during transmission is suggested to be beneficial. The data compression technique is widely known to reduce data size, but this additional step may yield side effects such as increased memory usage and processing time. This study aims to investigate how the data compression process, which specifically uses Zlib and Base64 encoding, may put additional load on the whole process of delivering content to a RESTful API. The performance and characteristics in terms of bandwidth saved when distributing JSON data from a RESTful API in compressed format are also be investigated. According to the experiment result, it is suggested that the compression process can reduce network bandwidth by up to 66% with negligible additional memory usage for the compression and decompression processes.
References
Jiang, Z., Kuang, R., Gong, J., Yin, H., Lyu, Y., Zhang, X.: What makes a great
mobile app? a quantitative study using a new mobile crawler. In: 2018 IEEE
Symposium on Service-Oriented System Engineering (SOSE). (2018) 222–227
Stocchi, L., Pourazad, N., Michaelidou, N., Tanusondjaja, A., Harrigan, P.: Marketing research on mobile apps: past, present and future. J. of the Acad. Mark. Sci.
(2022) 195–225
Daniels, B.: Top 11 app engagement strategies (and how to make your app sticky)
(2023)
Raducanu, A.L., Carabas, M., Barbulescu, M., Tapus, N., Suliman, G.: Clientserver application with android mobile phone technology. In: 2019 18th RoEduNet
Conference: Networking in Education and Research (RoEduNet). (2019) 1–6
Xu, A.: Why restful api so popular? (2022)
Ma, S.P., Hsu, M.J., Chen, H.J., Lin, C.J.: Restful api analysis, recommendation,
and client code retrieval. Electronics 12(5) (2023)
Neumann, A., Laranjeiro, N., Bernardino, J.: An analysis of public rest web service
apis. IEEE Transactions on Services Computing 14(4) (2021) 957–970
Tornes, A.: Full-archive search api success stories: Gnip customer union metrics
(2016)
Maleshkova, M., Pedrinaci, C., Domingue, J.: Investigating web apis on the world
wide web. In: 2010 Eighth IEEE European Conference on Web Services. (2010)
–114
Renzel, D., Schlebusch, P., Klamma, R.: Today’s top “restful” services and why
they are not restful. In Wang, X.S., Cruz, I., Delis, A., Huang, G., eds.: Web
Information Systems Engineering - WISE 2012, Berlin, Heidelberg, Springer Berlin
Heidelberg (2012) 354–367
Bülthoff, F., Maleshkova, M.: Restful or restless – current state of today’s top web
apis. In Presutti, V., Blomqvist, E., Troncy, R., Sack, H., Papadakis, I., Tordai, A.,
eds.: The Semantic Web: ESWC 2014 Satellite Events, Cham, Springer International
Publishing (2014) 64–74
Kopecký, J., Fremantle, P., Boakes, R.: A history and future of web apis. it -
Information Technology 56(3) (2014) 90–97
Haupt, F., Leymann, F., Pautasso, C.: A conversation based approach for modeling
rest apis. In: 2015 12th Working IEEE/IFIP Conference on Software Architecture.
(2015) 165–174
Mohan, M.: Optimizing rest api performance: Advanced techniques (2023)
Rodríguez, C., Baez, M., Daniel, F., Casati, F., Trabucco, J.C., Canali, L., Percannella, G.: Rest apis: A large-scale analysis of compliance with principles and best
practices. In Bozzon, A., Cudre-Maroux, P., Pautasso, C., eds.: Web Engineering,
Cham, Springer International Publishing (2016) 21–39
Tiwary, G.P., Stroulia, E., Srivastava, A.: Compression of xml and json api responses.
IEEE Access 9 (2021) 57426–57439
Muła, W., Lemire, D.: Base64 encoding and decoding at almost the speed of a
memory copy. Software: Practice and Experience 50(2) (2020) 89–97
Wen, S., Dang, W.: Research on base64 encoding algorithm and php implementation.
In: 2018 26th International Conference on Geoinformatics. (2018) 1–5
Sohan, S.M., Maurer, F., Anslow, C., Robillard, M.P.: A study of the effectiveness
of usage examples in rest api documentation. In: 2017 IEEE Symposium on Visual
Languages and Human-Centric Computing (VL/HCC). (2017) 53–61
Yoshikawa, N., Kubo, R., Yamamoto, K.Z.: Twitter integration of chemistry software
tools. Journal of Cheminformatics 13(1) (Jul 2021) 46
Tupitsin, A., Puzrin, V.: pako: zlib port to javascript, very fast! (2022)
LaMorte, W.W.: Mann whitney u test (wilcoxon rank sum test) (2017)
Downloads
Published
How to Cite
Issue
Section
License
 Creative Common Attribution-ShareAlike 3.0 International (CC BY-SA 3.0)
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).