Skip to main content

What is a Good API? A Survey on the Use and Design of Application Programming Interfaces

  • Conference paper
  • First Online:
Internet of Everything (IOECON 2023)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 49.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 64.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. CESSDA Technical Guidelines (2023). https://docs.tech.cessda.eu/

  2. Charest, G., Rogers, M.: Data exchange mechanisms and considerations. https://enterprisearchitecture.harvard.edu/data-exchange-mechanisms

  3. 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

  4. 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

    Chapter  Google Scholar 

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

    Article  Google Scholar 

  10. Malmi, L.: Tools research-what is it? ACM Inroads 5(3), 34–35 (2014). https://doi.org/10.1145/2655759.2655768

    Article  Google Scholar 

  11. 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

    Article  Google Scholar 

  12. 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

  13. Myers, B.A., Stylos, J.: Improving API usability. Commun. ACM 59(6), 62–69 (2016). https://doi.org/10.1145/2896587

    Article  Google Scholar 

  14. 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)

    Article  Google Scholar 

  15. 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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Natalie Kiesler .

Editor information

Editors and Affiliations

Appendix

Appendix

1.1 Survey Questions

Section I - General Questions and Prior Experience

  1. 1.

    Current job title

  2. 2.

    Your programming experience in years

  3. 3.

    Your experience in using APIs in years

  4. 4.

    How many APIs from other developers have you used so far?

  5. 5.

    How did you develop your competencies related to APIs?

  6. 6.

    Which types of APIs are you using?

  7. 7.

    In which context are you using APIs (e.g., education, research data center, natural language processing, etc.)?

  8. 8.

    Which programming language(s) do you prefer to use for working with an API?

  9. 9.

    For which interfaces do you use APIs?

Section II - Criteria of Good APIs

  1. 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. 2.

    How important are the following factors when using an API?

Section III - Criteria for Using an API

  1. 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. 2.

    Please explain your selection regarding flexibility as a factor (see previous question).

  3. 3.

    Which criteria do you use to evaluate the complexity of integrating a new API into an existing system/framework?

  4. 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. 5.

    What factors in your system architecture make it easier for you to integrate existing APIs?

  6. 6.

    Which challenges (due to the API and the system) have you already experienced when integrating third-party APIs?

  7. 7.

    Do you have ideas on how to overcome these challenges?

Rights and permissions

Reprints and permissions

Copyright information

© 2024 ICST Institute for Computer Sciences, Social Informatics and Telecommunications Engineering

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics