Architectural Design of Representational State Transfer Application Programming Interface with Application-Level Base64-Encoding and Zlib Data Compression

Authors

  • Aryo Pinandito Universitas Brawijaya, Malang
  • Agi Putra Kharisma Universitas Brawijaya, Malang
  • Eriq Muhammad Adams Jonemaro Universitas Brawijaya, Malang

DOI:

https://doi.org/10.25126/jitecs.202383619

Abstract

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

2023-12-15

How to Cite

Pinandito, A., Kharisma, A. P., & Jonemaro, E. M. A. (2023). Architectural Design of Representational State Transfer Application Programming Interface with Application-Level Base64-Encoding and Zlib Data Compression. Journal of Information Technology and Computer Science, 8(3), 286–298. https://doi.org/10.25126/jitecs.202383619

Issue

Section

Articles