Abstract
Cloud computing trends such as Software as a Service (SaaS) enable providers to host complex applications over the Internet, making them available to external consumers through an Application Programming Interface (API). The success of a SaaS, and in some sense any distributed system, is greatly influenced by its API. Highly usable APIs improve the efficiency of the development process and its quality, ensuring that programmers continue to appreciate other aspects of the API while increasing their productivity. Different studies state that the design phase within the development process of an API is the most appropriate to address usability issues. Therefore, usability should be considered as an explicit criterion in the design of an API. In this paper, we propose a design guide for web APIs with an emphasis on usability, using the best practices of usable web APIs design. Our design guide is based on an adaptation of the design science research methodology (DSRM), and it is complemented with a systematic literature review and gray literature analysis concerning methods, techniques, and tools used to develop usable APIs.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.REFERENCES
Espinha, T., Zaidman, A., and Gross, H.G., Web API growing pains: loosely coupled yet strongly tied, J. Syst. Software, 2015, vol. 100, pp. 27–43. https://doi.org/10.1016/j.jss.2014.10.014
Zosimov, V.V., Khrystodorov, O.V., and Bulgakova, O.S., Dynamically changing user interfaces: software solutions based on automatically collected user information, Program. Comput. Software, 2018, vol. 44, pp. 492–498. https://doi.org/10.1134/S036176881806018X
Biehl, M., API Architecture: the Big Picture for Building APIs, 2015.
Mulloy, B., Web API Design – Crafting Interfaces That Developers Love, 2012.
Jin, B., Sahni, S., and Shevat, A., Designing Web APIs, 2018.
ISO/IEC 25010:2011: Systems and Software Engineering – Systems and Software Quality Requirements and Evaluation (SQuaRE) – System and Software Quality Models, 2011.
Speicher, M., What is usability? a characterization based on ISO 9241-11 and ISO/IEC 25010, Tech. Rep., Technische Universität Chemnitz, Department of Computer Science, 2015, no. CSR-15-02.
Piccioni, M., Furia, C.A., and Meyer, B., An empirical study of API usability, Proc. ACM/IEEE Int. Symp. on Empirical Software Engineering and Measurement, Baltimore, 2013, pp. 5–14. https://doi.org/10.1109/ESEM.2013.14
Gerken, J., Jetter, H.-C., Zöllner, M., Mader, M., and Reiterer, H., The concept maps method as a tool to evaluate the usability of APIs, Proc. 2011 Annu. Conf. on Human Factors in Computing Systems CHI’11, Vancouver, 2011. https://doi.org/10.1145/1978942.1979445
Henning, M., API design matters, Commun. ACM, 2009, vol. 52, pp. 46–56. https://doi.org/10.1145/1506409.1506424
Myers, B.A. and Stylos, J., Improving API usability, Commun. ACM, 2016, vol. 59, pp. 62–69. https://doi.org/10.1145/2896587
Zibran, M.F., Eishita, F.Z., and Roy, C.K., Useful, but usable? Factors affecting the usability of APIs, Proc. Working Conf. on Reverse Engineering WCRE 2011, Limerick, 2011, pp. 151–155. https://doi.org/10.1109/WCRE.2011.26
Bhaskar, R.K., Anslow, C., Brosz, J., and Maurer, F., Developing usable APIs with XP and cognitive dimensions, Proc. IEEE Symp. on Visual Languages and Human-Centric Computing (VL/HCC), Cambridge, 2016, pp. 101–105. https://doi.org/10.1109/VLHCC.2016.7739671
Peffers, K., Tuunanen, T., Rothenberger, M.A., and Chatterjee, S., A design science research methodology for information systems research, J. Manag. Inf. Syst., 2007, vol. 24, no. 3, pp. 45–77. https://doi.org/10.2753/MIS0742-1222240302
Tello-Rodríguez, M., Ocharán-Hernández, J.O., Pérez-Arriaga, J.C., Estadística, and F. De, Veracruzana, U., Hacia una guía de diseño para APIs Web con un enfoque en la usabilidad Towards a design guide for Web APIs with a focus on usability, Abstr. Appl., 2019, vol. 25, pp. 36–60.
Hunter, K.L., Irresistible APIs, Designing Web APIs That Developers Will Love, Manning Publ., 2017.
Eassa, A.M., Elhoseny, M., El-Bakry, H.M., and Salama, A.S., NoSQL injection attack detection in web applications using RESTful service, Program. Comput. Software, 2018, vol. 44, pp. 435–444. https://doi.org/10.1134/S036176881901002X
Stylos, J., Graf, B., Busse, D.K., Ziegler, C., Ehret, R., and Karstens, J., A case study of API redesign for improved usability, Proc. IEEE Symp. on Visual Languages and Human-Centric Computing VL/HCC 2008, Ammersee, 2008, pp. 189–192. https://doi.org/10.1109/VLHCC.2008.4639083
Lee, S., Lee, S., Lim, S., Jung, J., Choi, S., Kim, N., and Lee, J.B., An API design process in terms of usability: a case study on building more usable apis for smart TV platform, Proc. 38th IEEE Annu. Int. Computers, Software and Applications Conf. Workshops COMPSACW 2014, Vasteras, 2014, pp. 567–571. https://doi.org/10.1109/COMPSACW.2014.95
Ramakrishnan, L., Poon, S., Hendrix, V., Gunter, D., Pastorello, G.Z., and Agarwal, D., Experiences with user-centered design for the tigres workflow API, Proc. 10th IEEE Int. Conf. eScience 2014, Guarujá, 2014, vol. 1, pp. 290–297. https://doi.org/10.1109/eScience.2014.56
Robillard, M.P. and Deline, R., A field study of API learning obstacles, Empirical Software Eng, 2011, vol. 16, pp. 703–732. https://doi.org/10.1007/s10664-010-9150-8
Watson, R., Applying the cognitive dimensions of API usability to improve API documentation planning, Proc. 32nd ACM Int. Conf. on Design of Communication SIGDOC’14, Colorado Springs, 2014. https://doi.org/10.1145/2666216.2666239
Sohan, S.M., Maurer, F., Anslow, C., and Robillard, M.P., A study of the effectiveness of usage examples in REST API documentation, Proc. IEEE Symp. on Visual Languages and Human-Centric Computing VL/HCC 2017, Raleigh, 2017, pp. 53–61. https://doi.org/10.1109/VLHCC.2017.8103450
Macvean, A., Maly, M., and Daughtry, J., API design reviews at scale, Proc. CHI Conf. Extended Abstracts on Human Factors in Computing Systems CHI EA’16, San Jose, 2016, pp. 849–858. https://doi.org/10.1145/2851581.2851602
Robillard, M.P., What makes APIs hard to learn? Answers from developers, IEEE Software, 2009, vol. 26, pp. 27–34. https://doi.org/10.1109/MS.2009.193
Munir, M.B. and Mushtaq, A., A framework for extending usability engineering: API usability essentials: extending usability via component-based platform, Proc. IEEE Conf. on Open Systems ICOS 2012, Kuala Lumpur, 2012. https://doi.org/10.1109/ICOS.2012.6417654
Kitchenham, B., Pretorius, R., Budgen, D., Brereton, O.P., Turner, M., Niazi, M., and Linkman, S., Systematic literature reviews in software engineering – a tertiary study, Inf. Software Technol., 2010, vol. 52, no. 8, pp. 792–805. https://doi.org/10.1016/j.infsof.2010.03.006.1
Pearson, A., Balancing the evidence: incorporating the synthesis of qualitative data into systematic reviews, JBI Rep., 2004, vol. 2, pp. 45–64. https://doi.org/10.1111/j.1479-6988.2004.00008.x
Stylos, J. and Myers, B.A., The implications of method placement on API learnability, Proc. 16th ACM SIGSOFT Int. Symp. on Foundations of Software Engineering – SIGSOFT’08/FSE-16, Atlanta, 2008. https://doi.org/10.1145/1453101.14531173
O’Callaghan, P., The API walkthrough method: a lightweight method for getting early feedback about an API, Proc. Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), Reno/Tahoe, 2010. https://doi.org/10.1145/1937117.1937122
Farooq, U., Welicki, L., and Zirkler, D., API peer reviews: a method for evaluating usability of application programming interfaces, Proc. 2010 ACM Conf. on Computer Supported Cooperative Work, Savannah, 2010, pp. 207–210. https://doi.org/10.1145/1718918.1718957
Mitra, R., Rapido: a sketching tool for web API designers, Proc. WWW 2015 Companion, Florence, May 18–22, 2015. https://doi.org/10.1145/2740908.2743040
Murphy-Hill, E., Sadowski, C., Head, A., Daughtry, J., Macvean, A., Jaspan, C., and Winter, C., Discovering API usability problems at scale, Proc. IEEE/ACM 2nd Int. Workshop on API Usage and Evolution (WAPI), Gothenburg, 2018, pp. 14–17. https://doi.org/10.1145/3194793.3194795
Beaton, J.K.K., Myers, B.A.A., Stylos, J., Young, S., Jeong, S.Y., and Xie, Y., Usability evaluation for enterprise SOA APIs, Proc. 2nd Int. Workshop on Systems Development in SOA Environments, Leipzig, 2008, pp. 29–34. https://doi.org/10.1145/1370916.1370924
Zghidi, A., Hammouda, I., and Hnich, B., Poster: towards a formal API assessment, Proc. 40th IEEE/ACM Int. Conf. on Software Engineering: Companion (ICSE-Companion), Gothenburg, 2018, pp. 398–399. https://doi.org/10.1145/3183440.3195026
Scheller, T. and Kühn, E., Automated measurement of API usability: the API concepts framework, Inf. Software Technol., 2015, vol. 61, pp. 145–162. https://doi.org/10.1016/j.infsof.2015.01.009
López-Fernández, L., García, B., Gallego, M., and Gortázar, F., Designing and evaluating the usability of an API for real-time multimedia services in the Internet, Multimedia Tools Appl., 2017, vol. 76, pp. 14247–14304. https://doi.org/10.1007/s11042-016-3729-z
CA technologies: Arquitectura y estrategia de API: Un enfoque coordinado, 2015.
Wiegers, K. and Beatty, J., Software Requirements, 3rd ed., 2013. https://doi.org/10.3362/9781780449357
Mosqueira-Rey, E., Alonso-Ríos, D., Moret-Bonillo, V., Fernández-Varela, I., and Álvarez-Estévez, D., A systematic approach to API usability: taxonomy-derived criteria and a case study, Inf. Software Technol., 2018, vol. 97, pp. 46–63. https://doi.org/10.1016/j.infsof.2017.12.010
Lauret, A., The Design of Web APIs, Manning Publ., 2019.
Webber, J., Parastatidis, S., and Robinson, I., REST in Practice: Hypermedia and Systems Architecture, O’Reilly Media Inc., 2010.
ACKNOWLEDGMENTS
The authors are grateful for the support and funding granted by PRODEP 2018 (Programa para el Desarrollo Profesional Docente en Educación Superior, 48058 511-6/18-9245/PTC-888).
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
About this article
Cite this article
Tello-Rodríguez, M., Ocharán-Hernández, J.O., Pérez-Arriaga, J.C. et al. A Design Guide for Usable Web APIs. Program Comput Soft 46, 584–593 (2020). https://doi.org/10.1134/S0361768820080241
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768820080241