API governance support through the structural analysis of REST APIs

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.

[1]  Lisa Dusseault,et al.  PATCH Method for HTTP , 2010, RFC.

[2]  Roberto Chinnici,et al.  Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language , 2007 .

[3]  Frank Leymann,et al.  Bootstrapping Complex Workflow Middleware Systems into the Cloud , 2015, 2015 IEEE 11th International Conference on e-Science.

[4]  Uppaluri S. R. Murty,et al.  Graph Theory with Applications , 1978 .

[5]  Frank Leymann,et al.  A Framework for the Structural Analysis of REST APIs , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[6]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[7]  Cesare Pautasso,et al.  A Conversation Based Approach for Modeling REST APIs , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[8]  Marc J. Hadley,et al.  Web application description language (WADL) , 2006 .

[9]  Thomas L. Saaty,et al.  DECISION MAKING WITH THE ANALYTIC HIERARCHY PROCESS , 2008 .

[10]  John Domingue,et al.  Investigating Web APIs on the World Wide Web , 2010, 2010 Eighth IEEE European Conference on Web Services.

[11]  Frank Leymann,et al.  Service Composition for REST , 2014, 2014 IEEE 18th International Enterprise Distributed Object Computing Conference.

[12]  Yann-Gaël Guéhéneuc,et al.  Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach , 2014, ICSOC.

[13]  Ralph E. Johnson,et al.  REST and Web Services: In Theory and in Practice , 2011, REST: From Research to Practice.

[14]  Oliver Kopp,et al.  RoSE: Reoccurring Structures Detection in BPMN 2.0 Process Model Collections , 2016, OTM Conferences.

[15]  Frank Leymann,et al.  A Model-Driven Approach for REST Compliant Services , 2014, 2014 IEEE International Conference on Web Services.

[16]  Fabio Casati,et al.  REST APIs: A Large-Scale Analysis of Compliance with Principles and Best Practices , 2016, ICWE.

[17]  Yann-Gaël Guéhéneuc,et al.  Are REST APIs for Cloud Computing Well-Designed? An Exploratory Study , 2016, ICSOC.

[18]  Yann-Gaël Guéhéneuc,et al.  Are RESTful APIs Well-Designed? Detection of their Linguistic (Anti)Patterns , 2015, ICSOC.

[19]  Savas Parastatidis,et al.  REST in Practice - Hypermedia and Systems Architecture , 2010 .

[20]  Jim Webber REST in Practice , 2010, ECSA.

[21]  Ralf Klamma,et al.  Today's Top "RESTful" Services and Why They Are Not RESTful , 2012, WISE.

[22]  Ray Ison,et al.  Human knowing and perceived complexity: Implications for systems practice , 2004 .

[23]  Subbu Allamaraju RESTful Web Services Cookbook , 2010 .

[24]  Cesare Pautasso,et al.  A pattern language for RESTful conversations , 2016, EuroPLoP.

[25]  Mark Nottingham,et al.  Home Documents for HTTP APIs , 2017 .

[26]  Roy T. Fielding,et al.  Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content , 2014, RFC.

[27]  J. A. Bondy,et al.  Graph Theory with Applications , 1978 .