Dynamic Generation of Documentation, Code, and Tests for a Digital Marketing Platform's API

Detailed documentation and software tests are key factors for the success of a web application programming interface (API). When designing an API, especially in a design first approach, it is relevant to define a formal contract, known as API specification. This document must contain all necessary information regarding the API behavior. Thereby, the specification can be used to dynamically generate API components like documentation, client and server code, and software tests, reducing development and maintenance costs. This chapter presents a study of OpenAPI specification and its application on designing a new RESTful API for E-goi. It also presents a set of solutions for generating documentation, client code libraries, and test cases. Dynamic Generation of Documentation, Code, and Tests for a Digital Marketing Platform’s API

[1]  Vahid Garousi,et al.  Developing, Verifying, and Maintaining High-Quality Automated Test Scripts , 2016, IEEE Software.

[2]  Vahid Garousi,et al.  Software test-code engineering: A systematic mapping , 2015, Inf. Softw. Technol..

[3]  Frank Maurer,et al.  What makes a good code example?: A study of programming Q&A in StackOverflow , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[4]  Burak Turhan,et al.  How good are my tests , 2017 .

[5]  Claudia P. Ayala,et al.  A Data-Driven Approach to Improve the Process of Data-Intensive API Creation and Evolution , 2017, CAiSE-Forum-DC.

[6]  Vahid Garousi,et al.  A Search-Based Approach for Cost-Effective Software Test Automation Decision Support and an Industrial Case Study , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[7]  Stephanie B. Steinhardt,et al.  Application Programming Interface Documentation: What Do Software Developers Want? , 2018 .

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

[9]  Thomas A. Limoncelli Documentation is automation , 2018, Commun. ACM.

[10]  Frank Maurer,et al.  A Case Study of Web API Evolution , 2015, 2015 IEEE World Congress on Services.

[11]  Martin P. Robillard,et al.  A field study of API learning obstacles , 2011, Empirical Software Engineering.

[12]  Eya Ben Charrada,et al.  Keeping Evolving Requirements and Acceptance Tests Aligned with Automatically Generated Guidance , 2018, REFSQ.

[13]  Gregor Engels,et al.  From Open API to Semantic Specifications and Code Adapters , 2017, 2017 IEEE International Conference on Web Services (ICWS).

[14]  Marco Tulio Valente,et al.  Documenting APIs with examples: Lessons learned with the APIMiner platform , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[15]  Paulo F. Pires,et al.  Evaluating a Representational State Transfer (REST) Architecture: What is the Impact of REST in My Architecture? , 2014, 2014 IEEE/IFIP Conference on Software Architecture.

[16]  Martin P. Robillard,et al.  How API Documentation Fails , 2015, IEEE Software.