Compatibility Modeling and Testing of REST API based on REST Chart

Li Li, Wu Chou

2015

Abstract

Compatibility of REST API has become an acute issue in many large scale distributed software systems where many REST APIs evolve rabidly with new services and service updates. To address this problem in a generic fashion independent of the REST API implementations, this paper presents an approach based on REST Chart, a Petri-Net based XML language and modelling framework to describe and track down the variations among REST APIs. In addition, an efficient algorithm is developed that can perform the fast model checking to determine the compatibility between two REST APIs from their REST Chart representations. Unlike conventional monolithic client architecture based backward compatibility testing approaches, REST Chart compatibility modelling is defined formally in terms of a client operational model that decomposes the client side service infrastructure into two reusable functional modules: a client oracle that selects hyperlinks to follow for a given goal, and a client agent that carries out the interaction as instructed by the oracle. A prototype system has been implemented and the preliminary experimental results show that the approach is feasible and promising.

References

  1. Alarcon, R., Wilde, E. 2010. Linking Data from RESTful Services, LDOW 2010, April 27, 2010, Raleigh, North Carolina.
  2. API Blueprint Format 1A revision 7. https://github.com/ apiaryio/api-blueprint/blob/master/API%20Blueprint %20Specification.md, last access: 12/16/2014.
  3. Berners-Lee, T., Fielding, R., Masinter, L. 2005. Uniform Resource Identifier (URI): Generic Syntax, Request for Comments: 3986, January 2005, https://tools.ietf.org/html/rfc3986, last access: 12/16/2014.
  4. Champin. P-A. 2013. RDF-REST: A Unifying Framework for Web APIs and Linked Data. Services and Applications over Linked APIs and Data (SALAD), workshop at ESWC, May 2013, Montpellier (FR), France. pp.10-19.
  5. Floodlight REST API. http://www.openflowhub.org/ display/floodlightcontroller/Floodlight+REST+API, last access: 12/16/2014.
  6. Fielding, R. T. 2000: Architectural Styles and the Design of Network-based Software Architectures, DISSERTATION, UNIVERSITY OF CALIFORNIA, IRVINE, 2000.
  7. Gomadam, K. et al 2010. SA-REST: Semantic Annotation of Web Resources, W3C Member Submission 05 April 2010, http://www.w3.org/Submission/SAREST/, last access: 12/16/2014.
  8. Gregorio, J. et al 2012. URI Template, Request for Comments: 6570, March 2012, https://tools.ietf.org/ html/rfc6570, last access: 12/16/2014.
  9. GSMA OneAPI 2013. http://www.gsma.com/oneapi/ voice-call-control-restful-api/, last access: 12/16/2014.
  10. Hadley, M. 2009: Web Application Description Language, W3C member Submission, 31, August 2009, http://www.w3.org/Submission/wadl/, last access: 12/16/2014.
  11. Li, L., Chou, W. 2008. InfoParser: Infoset Driven XML Processing for Web Services, ICWS 2008, pages 513- 520, Beijing China, September 2008.
  12. Li, L., Chou, W. 2009. Infoset for Service Abstraction and Lightweight Message Processing, ICWS 2009, pages 703-710, Los Angeles, July 2009.
  13. Li, L., Chou, W. 2011. Design and Describe REST API without Violating REST: a Petri Net Based Approach, ICWS 2011, pages 508-515, Washington DC, USA, July 4-9, 2011.
  14. Murata, Tadao: Petri Nets: Properties, Analysis and Applications (invited paper), Proceedings of the IEEE, Vol. 77, No. 4, April 1989.
  15. OpenStack API Complete Reference: http://developer. openstack.org/api-ref.html, last access: 12/16/2014.
  16. OpenStack Releases: https://wiki.openstack.org/wiki/ Releases, last access: 12/16/2014.
  17. OpenStack REST API v2.0 references: http:// developer.openstack.org/api-ref.html, last access: 12/16/2014.
  18. RAML Version 0.8. http://raml.org/spec.html, last access: 12/16/2014.
  19. Robie, J. 2010. RESTful API Description Language (RADL), https://github.com/restful-api-descriptionlanguage/RADL, 2014, last access: 12/16/2014.
  20. Robie, J. et al 2013. RESTful Service Description Language (RSDL), Describing RESTful Services Without Tight Coupling, Balisage: The Markup Conference 2013, http://www.balisage.net/Proceedings/vol10/html/Robi e01/BalisageVol10-Robie01.html, last access: 12/16/2014.
  21. SOA Membrane WSDL tool: http://www.membranesoa.org/soa-model-doc/1.4/cmd-tool/wsdldifftool.htm, last access: 12/16/2014.
  22. SOA Membrane XSD tool: http://www.membranesoa.org/soa-model-doc/1.4/cmd-tool/schemadifftool.htm, last access: 12/16/2014.
  23. Swagger 2.0. https://github.com/swagger-api/swaggerspec, last access: 12/16/2014.
  24. Thompson, H. S. et al 2004. XML Schema Part 1: Structures Second Edition, W3C Recommendation, 28 October 2004, http://www.w3.org/TR/xmlschema-1/, last access: 12/16/2014.
  25. WSDL Auditor: http://wsdlauditor.sourceforge.net/, last access: 12/16/2014.
  26. WSDL Comparator: http://www.service-repository.com/ comparator/compareWSDL, last access: 12/16/2014.
Download


Paper Citation


in Harvard Style

Li L. and Chou W. (2015). Compatibility Modeling and Testing of REST API based on REST Chart . In Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume 1: WEBIST, ISBN 978-989-758-106-9, pages 194-202. DOI: 10.5220/0005441301940202


in Bibtex Style

@conference{webist15,
author={Li Li and Wu Chou},
title={Compatibility Modeling and Testing of REST API based on REST Chart},
booktitle={Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume 1: WEBIST,},
year={2015},
pages={194-202},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005441301940202},
isbn={978-989-758-106-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume 1: WEBIST,
TI - Compatibility Modeling and Testing of REST API based on REST Chart
SN - 978-989-758-106-9
AU - Li L.
AU - Chou W.
PY - 2015
SP - 194
EP - 202
DO - 10.5220/0005441301940202