Abstract
In the Internet of Everything context, relevant and valuable connections between people, data, processes, and things are core elements. Machine-to-Machine (M2M) connections can be achieved, for example, by using application programming interfaces (APIs). However, investigating quality criteria of APIs has not yet gained significant traction in computing, or computing education research. In this work, we present a study of quality criteria for APIs to identify which factors developers rate as important when it comes to an API’s quality. We then discuss how we can possibly quantify these factors. To achieve these goals, an online survey with experienced developers was conducted (n = 19). The results reveal that developers seem to appreciate established, stable solutions, the availability of examples, and a community. Developers also consider it important that an API can be extended, and integrated into an existing framework. However, strong trends among the criteria were not identified, as many factors play a role when choosing an API. Therefore more research is required to provide guidance to (future) software developers on how they can improve the design of their APIs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
CESSDA Technical Guidelines (2023). https://docs.tech.cessda.eu/
Charest, G., Rogers, M.: Data exchange mechanisms and considerations. https://enterprisearchitecture.harvard.edu/data-exchange-mechanisms
Horvath, A., Nagy, M., Voichick, F., Kery, M.B., Myers, B.A.: Methods for investigating mental models for learners of APIs. In: Extended Abstracts of the 2019 CHI Conference on Human Factors in Computing Systems, CHI EA 2019, pp. 1–6. ACM, New York (2019). https://doi.org/10.1145/3290607.3312897
Kiesler, N., Impagliazzo, J.: Perspectives on the internet of everything. In: Pereira, T., Impagliazzo, J., Santos, H. (eds.) IoECon 2022. LNICST, vol. 458, pp. 3–17. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-25222-8_1
Kiesler, N., Schiffner, D.: On the lack of recognition of software artifacts and IT infrastructure in educational technology research. In: Henning, P.A., Striewe, M., Wölfel, M. (eds.) 20. Fachtagung Bildungstechnologien (DELFI), pp. 201–206. Gesellschaft für Informatik e.V., Bonn (2022). https://doi.org/10.18420/delfi2022-034
Kiesler, N., Schiffner, D.: Why we need open data in computer science education research. In: Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education, ITiCSE 2023, vol. 1. Association for Computing Machinery, New York (2023). https://doi.org/10.1145/3587102.3588860
Kiesler, N., Thorbrügge, C.: Socially responsible programming in computing education and expectations in the profession. In: Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education, ITiCSE 2023, vol. 1, pp. 443–449. Association for Computing Machinery, New York (2023). https://doi.org/10.1145/3587102.3588839
Kinnunen, P., Meisalo, V., Malmi, L.: Have we missed something? Identifying missing types of research in computing education. In: Proceedings of the Sixth International Workshop on Computing Education Research, ICER 2010, pp. 13–22. ACM, New York (2010). https://doi.org/10.1145/1839594.1839598
Maalej, W., Robillard, M.: Patterns of knowledge in API reference documentation. IEEE Trans. Softw. Eng. 39, 1264–1282 (2013). https://doi.org/10.1109/TSE.2013.12
Malmi, L.: Tools research-what is it? ACM Inroads 5(3), 34–35 (2014). https://doi.org/10.1145/2655759.2655768
Meng, M., Steinhardt, S., Schubert, A.: Application programming interface documentation: what do software developers want? J. Tech. Writ. Commun. 48(3), 295–330 (2018). https://doi.org/10.1177/0047281617721853
Murphy, L., Kery, M.B., Alliyu, O., Macvean, A., Myers, B.A.: API designers in the field: design practices and challenges for creating usable APIs. In: 2018 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pp. 249–258 (2018). https://doi.org/10.1109/VLHCC.2018.8506523
Myers, B.A., Stylos, J.: Improving API usability. Commun. ACM 59(6), 62–69 (2016). https://doi.org/10.1145/2896587
Ofoeda, J., Boateng, R., Effah, J.: Application programming interface (API) research: a review of the past to inform the future. Int. J. Enterp. Inf. Syst. (IJEIS) 15(3), 76–95 (2019)
Zowghi, D., Coulin, C.: Requirements elicitation: a survey of techniques, approaches, and tools. In: Aurum, A., Wohlin, C. (eds.) Engineering and Managing Software Requirements, pp. 19–46. Springer, Heidelberg (2005). https://doi.org/10.1007/3-540-28244-0_2
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix
Appendix
1.1 Survey Questions
Section I - General Questions and Prior Experience
-
1.
Current job title
-
2.
Your programming experience in years
-
3.
Your experience in using APIs in years
-
4.
How many APIs from other developers have you used so far?
-
5.
How did you develop your competencies related to APIs?
-
6.
Which types of APIs are you using?
-
7.
In which context are you using APIs (e.g., education, research data center, natural language processing, etc.)?
-
8.
Which programming language(s) do you prefer to use for working with an API?
-
9.
For which interfaces do you use APIs?
Section II - Criteria of Good APIs
-
1.
Assume there are several APIs available to choose from. How important are the following features of an API to you, when you have a choice of which API to use?
-
2.
How important are the following factors when using an API?
Section III - Criteria for Using an API
-
1.
Open API architectures (such as REST) offer creative freedom in API design. Is this flexibility a factor that drives you to use them?
-
2.
Please explain your selection regarding flexibility as a factor (see previous question).
-
3.
Which criteria do you use to evaluate the complexity of integrating a new API into an existing system/framework?
-
4.
Have you ever encountered cases where the criteria you mentioned regarding the complexity of an API did not play a role in your choice?
-
5.
What factors in your system architecture make it easier for you to integrate existing APIs?
-
6.
Which challenges (due to the API and the system) have you already experienced when integrating third-party APIs?
-
7.
Do you have ideas on how to overcome these challenges?
Rights and permissions
Copyright information
© 2024 ICST Institute for Computer Sciences, Social Informatics and Telecommunications Engineering
About this paper
Cite this paper
Kiesler, N., Schiffner, D. (2024). What is a Good API? A Survey on the Use and Design of Application Programming Interfaces. In: Pereira, T., Impagliazzo, J., Santos, H., Chen, J. (eds) Internet of Everything. IOECON 2023. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 551. Springer, Cham. https://doi.org/10.1007/978-3-031-51572-9_4
Download citation
DOI: https://doi.org/10.1007/978-3-031-51572-9_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-51571-2
Online ISBN: 978-3-031-51572-9
eBook Packages: Computer ScienceComputer Science (R0)