Skip to main content

Advertisement

Log in

API governance support through the structural analysis of REST APIs

  • Special Issue Paper
  • Published:
Computer Science - Research and Development

Abstract

Today, REST APIs have established as a means for realizing distributed systems and are supposed to gain even more importance in the context of Cloud Computing, Internet of Things, and Microservices. Nevertheless, many existing REST APIs are known to be not well designed, resulting in the absence of desirable non-functional properties that truly RESTful systems entail. Although existing analysis show, that many REST APIs are not fully REST compliant, it is still an open issue how to improve this deficit and where to start. In this work, we apply structural analysis of REST APIs in order to support API governance, resulting in a set of basic and aggregated metrics that characterize an API set and also guide further governance tasks. We apply the structural analysis on a set of 286 real world APIs and then demonstrate how to derive suitable metrics that represent the perceived complexity of an API, complemented and validated by a survey of developers following the AHP process. As a result, we provide effective support for API governance, helping to identify and remedy problems in APIs.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  1. Webber J, Parastatidis S, Robinson I (2010) REST in practice: hypermedia and systems architecture. O’Reilly Media, Sebastopol

    Book  Google Scholar 

  2. Fielding RT, Taylor RN (2002) Principled design of the modern Web architecture. ACM Trans Internet Technol 2:115–150

    Article  Google Scholar 

  3. Renzel D, Schlebusch P, Klamma R (2012) Todays top RESTful services and why they are not RESTful. WISE, london

    Google Scholar 

  4. Maleshkova M, Pedrinaci C, Domingue J (2010) Investigating web APIs on the World Wide Web. In: The 8th IEEE European conference on web services (ECOWS 2010), 1–3, Ayia Napa, Cyprus

  5. Adamczyk P, Smith PH, Johnson RE, Hafiz M (2011) REST and Web services: In theory and in practice, REST: from research to practice. Springer, New York

    Google Scholar 

  6. Fielding R, Reschke J (2014) Hypertext transfer protocol (HTTP/1.1): Semantics and Content”, RFC 7231. http://www.ietf.org/rfc/rfc7231.txt

  7. Haupt F, Fischer M, Karastoyanova D, Leymann F, Vukojevic-Haupt K (2014) Service composition for REST, In: IEEE 18th international enterprise distributed object computing conference (EDOC), pp 110–119

  8. Haupt F, Leymann F, Scherer A, Vukojevic-Haupt K (2017) A framework for the structural analysis of REST APIs. In: Proceedings of the IEEE international conference on software architecture (ICSA 2017)

  9. Palma F, Dubois J, Moha N, Guhneuc YG (2014) Detection of REST patterns and antipatterns: a heuristics-based approach, ICSOC 2014. Springer, Berlin

    Google Scholar 

  10. Palma F. Gonzalez-Huerta J, Moha N, Guhneuc Y.G, Tremblay G (2015) Are restful apis well-designed? Detection of their linguistic (anti) patterns. In: International conference on service-oriented computing. Springer, Berlin

  11. Petrillo F, Merle P, Moha N, Guhneuc YG (2016) Are REST APIs for cloud computing well-designed? An exploratory study. Springer, Berlin

    Book  Google Scholar 

  12. Rodriguez C, et al. (2016) REST APIs: a large-scale analysis of compliance with principles and best practices. In: International conference on web engineering, Springer

  13. Fowler M (2010) Richardson maturity model: steps toward the glory of rest. http://martinfowler.com/articles/richardsonMaturityModel.html

  14. Swagger. http://swagger.io/

  15. RESTful API modeling language (RAML). http://raml.org/

  16. Open API initiative. https://www.openapis.org/

  17. API blueprint. https://apiblueprint.org/

  18. I/O Docs. http://mashery.github.io/

  19. Hadley MJ (2006) Web application description language (WADL). https://www.w3.org/Submission/wadl/

  20. Chinnici R, et al. (2007) Web services description language (wsdl) version 2.0 part 1: Core language. W3C recommendation 26

  21. Dusseault L, Snell J (2010) PATCH method for HTTP, RFC 5789. https://tools.ietf.org/rfc/rfc5789.txt

  22. Haupt F, Karastoyanova D, Leymann F, Schroth B (2014) A model-driven approach for REST compliant services. In: ICWS

  23. Haupt F, Leymann F, Pautasso C (2015) A conversation based approach for modeling REST APIs. In: IEEE WICSA 2015

  24. Allamaraju S (2010) Restful web services cookbook: solutions for improving scalability and simplicity. O’Reilly Media Inc, Sebastopol

    Google Scholar 

  25. Nottingham M. Home documents for HTTP APIs. https://tools.ietf.org/html/draft-nottingham-json-home-05

  26. Bondy JA, Murty USR (1976) Graph theory with applications. Macmillan, London

    Book  MATH  Google Scholar 

  27. Schlindwein SL, Ison R (2004) Human knowing and perceived complexity: implications for systems practice. Emerg Complex Organ 6(3):2732

    Google Scholar 

  28. Skouradaki M, Andrikopoulos V, Kopp O, Leymann F (2016) RoSE: reoccurring structures detection in BPMN 2.0 process model collections, OTM 2016. Springer, Berlin

    Google Scholar 

  29. Pautasso C, Ivanchikj A, Schreier S. RESTalk pattern language—patterns for RESTful conversations. http://restalk-patterns.org

  30. Pautasso C, Ivanchikj A, Schreier S (2016) A pattern language for RESTful conversations. In: Proceedings of the 21st European conference on pattern languages of programs (PLoP), ACM

  31. Vukojevic-Haupt K, Haupt F, Leymann F, Reinfurt L (2015) Bootstrapping complex workflow middleware systems into the cloud. e-Science 2015, IEEE

  32. Saaty TL (2008) Decision making with the analytic hierarchy process. Int J Serv Sci 1(1):83–98

    Google Scholar 

Download references

Acknowledgements

This work has been partially funded by the German Research Foundation (DFG) within the Cluster of Excellence in Simulation Technology (EXC310/2) at the University of Stuttgart.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Florian Haupt.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Haupt, F., Leymann, F. & Vukojevic-Haupt, K. API governance support through the structural analysis of REST APIs. Comput Sci Res Dev 33, 291–303 (2018). https://doi.org/10.1007/s00450-017-0384-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00450-017-0384-1

Keywords

Navigation