Model-driven Development of RESTful APIs

Vitaliy Schreibmann, Peter Braun

Abstract

We propose a model-driven approach for creating RESTful APIs. Today, REST APIs are developed by using frameworks and libraries that support software developers on the level of the chosen programming language, i.e., a lower level of abstraction. We argue that the development process can benefit from a model-driven approach, where an API is modeled on a higher level of abstraction by using a new formal language that was designed in particular for this application domain. From this model, the source code of the API is generated automatically, along with necessary code on the business logic and database layer. The benefits of this approach include higher productivity, better maintenance, higher quality, and documentation for free.

References

  1. Amundsen, M., Richardson, L., and Ruby, S. (2013). RESTful Web APIs. O'Reilly Media, Inc., Sebastopol, CA, USA.
  2. Bettini, L. (2013). Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham, United Kingdom, first edition.
  3. Conway, D. (1998). An algorithmic approach to english pluralization. In Proceedings of the Second Annual Perl Conference, San Jose, USA.
  4. Costa, B., Pires, P., Delicato, F., and Merson, P. (2014). Evaluating a representational state transfer (rest) architecture: What is the impact of rest in my architecture? In Software Architecture (WICSA), 2014 IEEE/IFIP Conference on, pages 105-114, Sydney, NSW.
  5. Coulouris, Dollimore, J., and Kindberg, T. (2005). Distributed Systems: Concepts and Design (4th Edition) (International Computer Science). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  6. Dallas, A. (2014). RESTful Web Services with Dropwizard. Packt Publishing, Birmingham, United Kingdom, first edition.
  7. Dusseault, L. and Snell, J. (2010). PATCH Method for HTTP. RFC 5789, Internet Engineering Task Force.
  8. Eysholdt, M. and Behrens, H. (2010). Xtext: Implement your language faster than the quick and dirty way. In Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, OOPSLA 7810, pages 307-309, New York, NY, USA. ACM.
  9. Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California.
  10. Fielding, R. T. (2008). REST APIs must be hypertextdriven. URI: http://roy.gbiv.com/untangled/2008/restapis-must-be-hypertext-driven. Last visited 12.12.2014.
  11. Fielding, R. T., Gettys, J., Mogul, J. C., Frystyk, H. N., , Masinter, L., Leach, P. J., and Berners-Lee, T. (1999). Hypertext Transfer Protocol - HTTP/1.1. RFC 2616, Internet Engineering Task Force.
  12. Fielding, R. T. and Taylor, R. N. (2002). Principled design of the modern web architecture. ACM Trans. Internet Technol., 2(2):115-150.
  13. Gulabani, S. (2013). Developing RESTful web services with Jersey 2.0. Packt Publishing, Birmingham, United Kingdom.
  14. Klein, U. and Namjoshi, K. S. (2011). Formalization and automated verification of restful behavior. In Proceedings of the 23rd International Conference on Computer Aided Verification, CAV'11, pages 541-556, Berlin, Heidelberg. Springer-Verlag.
  15. Laitkorpi, M., Selonen, P., and Systa, T. (2009). Towards a model-driven process for designing restful web services. In Web Services, 2009. ICWS 2009. IEEE International Conference on, pages 173-180.
  16. Lanthaler, M. and Gutl, C. (2010). Towards a restful service ecosystem. In Digital Ecosystems and Technologies (DEST), 2010 4th IEEE International Conference on, pages 209-214, Dubai. IEEE.
  17. Papazoglou, M. P. (2008). Web Services - Principles and Technology. Pearson Education Limted, Harlow, United Kingdom.
  18. Pautasso, C., Zimmermann, O., and Leymann, F. (2008). Restful web services vs. ”big”78 web services: Making the right architectural decision. In Proceedings of the 17th International Conference on World Wide Web, WWW 7808, pages 805-814, New York, NY, USA. ACM.
  19. Pérez, S., Durao, F., Meliá, S., Dolog, P., and Díaz, O. (2011). Restful, resource-oriented architectures: A model-driven approach. In Proceedings of the 2010 International Conference on Web Information Systems Engineering, WISS'10, pages 282-294, Berlin, Heidelberg. Springer-Verlag.
  20. Porres, I. and Rauf, I. (2011). Modeling behavioral restful web service interfaces in uml. In Proceedings of the 2011 ACM Symposium on Applied Computing, SAC 7811, pages 1598-1605, New York, NY, USA. ACM.
  21. Richardson, L. and Ruby, S. (2007). Restful Web Services. O'Reilly, Sebastopol, CA, USA.
  22. Rubel, D., Wren, J., and Clayberg, E. (2011). The Eclipse Graphical Editing Framework (GEF). Eclipse (Addison-Wesley). Addison-Wesley.
  23. Schreier, S. (2011). Modeling restful applications. In Proceedings of the Second International Workshop on RESTful Design, WS-REST 7811, pages 15-21, New York, NY, USA. ACM.
  24. Snell, J. M. (2013). HTTP Link and Unlink Methods draftsnell-link-method-10. Technical report, Internet Engineering Task Force. Expires: 02.02.2015, Last visited 12.12.2014.
  25. Stahl, T., Voelter, M., and Czarnecki, K. (2006). ModelDriven Software Development: Technology, Engineering, Management. John Wiley & Sons, Inc.
  26. Tavares, N. A. C. and Vale, S. (2013). A model driven approach for the development of semantic restful web services. In Proceedings of International Conference on Information Integration and Web-based Applications & Services, IIWAS 7813, pages 290:290- 290:299, New York, NY, USA. ACM.
  27. Thimbleby, H. (2010). Press On: Principles of Interaction Programming. The MIT Press.
  28. Webber, J., Parastatidis, S., and Robinson, I. (2010). REST in Practice: Hypermedia and Systems Architecture. O'Reilly Media, Inc.
Download


Paper Citation


in Harvard Style

Schreibmann V. and Braun P. (2015). Model-driven Development of RESTful APIs . In Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume 1: WEBIST, ISBN 978-989-758-106-9, pages 5-14. DOI: 10.5220/0005411200050014


in Bibtex Style

@conference{webist15,
author={Vitaliy Schreibmann and Peter Braun},
title={Model-driven Development of RESTful APIs},
booktitle={Proceedings of the 11th International Conference on Web Information Systems and Technologies - Volume 1: WEBIST,},
year={2015},
pages={5-14},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005411200050014},
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 - Model-driven Development of RESTful APIs
SN - 978-989-758-106-9
AU - Schreibmann V.
AU - Braun P.
PY - 2015
SP - 5
EP - 14
DO - 10.5220/0005411200050014