8 Hits in 0.73 sec

EMF-REST: Generation of RESTful APIs from Models [article]

Hamza Ed-Douibi, Javier Luis Cánovas Izquierdo, Abel Gómez, Massimo Tisi, Jordi Cabot
2015 arXiv   pre-print
In the last years, RESTful Web services have become more and more popular as a lightweight solution to connect remote systems in distributed and Cloud-based architectures. However, being an architectural style rather than a specification or standard, the proper design of RESTful Web services is not trivial since developers have to deal with a plethora of recommendations and best practices. Model-Driven Engineering (MDE) emphasizes the use of models and model transformations to raise the level
more » ... abstraction and semi-automate the development of software. In this paper we present an approach that leverages on MDE techniques to generate RESTful services. The approach, called EMF-REST, takes EMF data models as input and generates Web APIs following the REST principles and relying on well-known libraries and standards, thus facilitating its comprehension and maintainability. Additionally, EMF-REST integrates model and Web-specific features to provide model validation and security capabilities, respectively, to the generated API. For Web developers, our approach brings more agility to the Web development process by providing ready-to-run-and-test Web APIs out of data models. Also, our approach provides MDE practitioners the basis to develop Cloud-based modeling solutions as well as enhanced collaborative support.
arXiv:1504.03498v1 fatcat:v5odsix4arg2tbay272frb3yoy

Example-Driven Web API Specification Discovery [chapter]

Hamza Ed-douibi, Javier Luis Cánovas Izquierdo, Jordi Cabot
2017 Lecture Notes in Computer Science  
REpresentational State Transfer (REST) has become the dominant approach to design Web APIs nowadays, resulting in thousands of public REST Web APIs offering access to a variety of data sources (e.g., open-data initiatives) or advanced functionalities (e.g., geolocation services). Unfortunately, most of these APIs do not come with any specification that developers (and machines) can rely on to automatically understand and integrate them. Instead, most of the time we have to rely on reading its
more » ... -hoc documentation web pages, despite the existence of languages like Swagger or, more recently, OpenAPI that developers could use to formally describe their APIs. In this paper we present an exampledriven discovery process that generates model-based OpenAPI specifications for REST Web APIs by using API call examples. A tool implementing our approach and a community-driven repository for the discovered APIs are also presented. Introduction Web APIs are becoming the backbone of Web, cloud, mobile applications and even many open data initiatives. For example, as of February 2017, P W lists more than 16,997 public APIs. REST is the predominant architectural style for building such Web APIs, which proposes to manipulate Web resources using a uniform set of stateless operations and relying only on simple URIs and HTTP verbs. Despite their popularity, REST Web APIs do not typically come with any precise specification of the functionality or data they offer. Instead, REST "specifications" are typically simple informal textual descriptions [11] (i.e., documentation pages), which hampers their integration in third-party tools and services. Indeed, developers need to read documentation pages, manually write code to assemble the resource URIs and encode/decode the exchanged resource representations. This manual process is time-consuming and error-prone and affects not only the adoption of APIs but also its discovery so many web applications are missing good opportunities to extend their functionality with already available APIs. Actually, languages to formalize APIs exist, but they are barely used in practice. Web Application Description Language (WADL) [6], a specification language for REST Web APIs was the first one to be proposed. However, it was deemed too tedious to use and alternatives like Swagger3, API Blueprint4 or RAML5 quickly surfaced. Aiming at standardizing the way to specify REST Web APIs, several vendors (e.g., Google, IBM, SmartBear, or 3Scale) have recently announced the OpenAPI Initiative6, a vendor neutral, portable and open specification for providing metadata (in JSON and YAML) for REST Web APIs. This paper aims to improve this situation by helping both API builders and API users to interact with (and discover) each other by proposing an approach to automatically infer OpenAPI-compliant specifications for REST Web APIs, and, optionally, store them in a community-oriented directory. From the user's point of view, this facilitates the discovery and integration of existing APIs, favouring software reuse. For instance, API specifications can be used to generate SDKs for different frameworks (e.g., using APIMATIC7). From the API builder's point of view, this helps increase the exposure of the APIs without the need to learn and fully write the API specifications or alter the API code, thus allowing fast-prototyping of API specifications and leveraging on several existing toolsets featuring API documentation generation (e.g., using Swagger UI8) or API monitoring and testing (e.g., using Runscope9). Our approach is an example-driven approach, meaning that the OpenAPI specification is derived from a set of examples showing its usage. The use of examples is a well-known technique in several areas such as Software Engineering [8, 10] and Automatic Programming [5]. In our context, the examples are REST Web API calls expressed in terms of API requests and responses. We follow a metamodeling approach [1] and create an intermediate model-based representation of the OpenAPI specifications before generating the final OpenAPI JSON Schema definition10 for two main reasons: i) to leverage the plethora of modeling tools to generate, transform, analyze and validate our discovered specifications (as existing JSON schema tools are limited and may produce contradictory results [12]); and ii) to enable the integration of APIs into model-driven development processes (for codegeneration, reverse engineering,..). For instance, we envision designers being able to include API calls in the definition of web-based applications using the Interaction Flow Modeling Language (IFML) [2] . The remainder of this paper is structured as follows. Section 2 show the running example used along the paper. Section 3 presents the overall approach and then Sections 4, 5 and 6 describe the OpenAPI metamodel, the discovery process and the generation process, respectively. Section 7 describes the validation process and limitations of the approach. Section 8 presents the related work. Section 9 describes the tool support, and finally, Section 10 concludes the paper. 3
doi:10.1007/978-3-319-61482-3_16 fatcat:bqyoz6jl2faf3luy4ctnbym52u

A Model-based Chatbot Generation Approach to Converse with Open Data Sources [article]

Hamza Ed-douibi, Javier Luis Cánovas Izquierdo, Gwendal Daniel, Jordi Cabot
2020 arXiv   pre-print
The Open Data movement promotes the free distribution of data. More and more companies and governmental organizations are making their data available online following the Open Data philosophy, resulting in a growing market of technologies and services to help publish and consume data. One of the emergent ways to publish such data is via Web APIs, which offer a powerful means to reuse this data and integrate it with other services. Socrata, CKAN or OData are examples of popular specifications
more » ... publishing data via Web APIs. Nevertheless, querying and integrating these Web APIs is time-consuming and requires technical skills that limit the benefits of Open Data movement for the regular citizen. In other contexts, chatbot applications are being increasingly adopted as a direct communication channel between companies and end-users. We believe the same could be true for Open Data as a way to bridge the gap between citizens and Open Data sources. This paper describes an approach to automatically derive full-fledged chatbots from API-based Open Data sources. Our process relies on a model-based intermediate representation (via UML class diagrams and profiles) to facilitate the customization of the chatbot to be generated.
arXiv:2007.10503v1 fatcat:7l4y3mgbibcyvlm6cutwguwwwi

A UML Profile for OData Web APIs [chapter]

Hamza Ed-douibi, Javier Luis Cánovas Izquierdo, Jordi Cabot
2017 Lecture Notes in Computer Science  
More and more individuals and organizations are making their data available online publicly, resulting in a growing market of technologies and services to help consume data and extract its real value. One of the several ways to publish data on the Web is via Web APIs. Unlike other approaches like RDF, Web APIs provide a simple way to query structured data by relying only on the HTTP protocol. Standards and frameworks such as Open API or API Blueprint offer a way to create Web APIs but OData
more » ... ds out from the rest as it is specifically tailored to deal with data sources. However, creating an OData Web API is a hard and time-consuming task for data providers as they have to choose between relying on commercial solutions, which are heavy and require a deep knowledge of their corresponding platforms, or create a customized solution to share their data. We propose an approach that leverages on model-driven techniques to facilitate the development of OData Web APIs. The approach relies on a UML profile for OData allowing to annotate a UML class diagram with OData stereotypes. In this paper we describe the profile and show how class diagrams can be automatically annotated with such profile.
doi:10.1007/978-3-319-60131-1_28 fatcat:pcwkkhv3qzfkxngczoodixznoa

APIComposer: Data-Driven Composition of REST APIs [chapter]

Hamza Ed-douibi, Javier Luis Cánovas Izquierdo, Jordi Cabot
2018 Lecture Notes in Computer Science  
More and more companies and governmental organizations are publishing data on the Web via REST APIs. The increasing number of REST APIs has promoted the creation of specialized applications aiming to combine and reuse different data sources to generate and deduce new information. However, creating such applications is a tedious and error-prone process since developers must invest much time in discovering the data model behind each candidate REST API, define the composition strategy, and
more » ... implement such strategy. To facilitate this process, we propose an approach to automatically compose and orchestrate data-oriented REST APIs. For an initial set of REST APIs, we discover the data models, identify matching concepts, obtain a global model, and make the latter available on the Web as a global REST API. A prototype tool relying on OpenAPI for describing APIs and on OData for querying them is also provided.
doi:10.1007/978-3-319-99819-0_12 fatcat:3lalchy3d5dlvi6briaqfoq6we


Hamza Ed-douibi, Javier Luis Cánovas Izquierdo, Abel Gómez, Massimo Tisi, Jordi Cabot
2016 Proceedings of the 31st Annual ACM Symposium on Applied Computing - SAC '16  
In the last years, there has been an increasing interest for Model-Driven Engineering (MDE) solutions in the Web. Web-based modeling solutions can leverage on better support for distributed management (i.e., the Cloud) and collaboration. However, current modeling environments and frameworks are usually restricted to desktop-based scenarios and therefore their capabilities to move to the Web are still very limited. In this paper we present an approach to generate Web APIs out of models, thus
more » ... ng the way for managing models and collaborating on them online. The approach, called EMF-REST, takes Eclipse Modeling Framework (EMF) data models as input and generates Web APIs following the REST principles and relying on well-known libraries and standards, thus facilitating its comprehension and maintainability. Also, EMF-REST integrates model and Web-specific features to provide model validation and security capabilities, respectively, to the generated API.
doi:10.1145/2851613.2851782 dblp:conf/sac/Ed-DouibiIGTC16 fatcat:zcdzfo3wbnem7hkgnbzmqmovby

Automatic code generation for cross-platform, multi-device mobile apps: some reflections from an industrial experience

Eric Umuhoza, Hamza Ed-douibi, Marco Brambilla, Jordi Cabot, Aldo Bongio
2015 Proceedings of the 3rd International Workshop on Mobile Development Lifecycle - MobileDeLi 2015  
With the continuously increasing adoption of mobile devices, software development companies have new business opportunities through direct sales in app stores and delivery of business to employee (B2E) and business to business (B2B) solutions. However, cross-platform and multi-device development is a barrier for today's IT solution providers, especially small and medium enterprises (SMEs), due to the high cost and technical complexity of targeting development to a wide spectrum of devices,
more » ... differ in format, interaction paradigm, and software architecture. So far, several authors have proposed the application of model driven approaches to mobile apps development following a variety of strategies. In this paper we present the results of a research study conducted to find the best strategy for WebRatio, a software development company, interested in producing a MDD tool for designing and developing mobile apps to enter the mobile apps market. We report on a comparative study conducted to identify the best trade-offs between various automatic code generation approaches.
doi:10.1145/2846661.2846666 dblp:conf/oopsla/UmuhozaE0CB15 fatcat:a3w2agr7yvaolb57ap7d4bevdm

Backwards reasoning for model transformations: Method and applications

Robert Clarisó, Jordi Cabot, Esther Guerra, Juan de Lara
2016 Journal of Systems and Software  
We would like to thank Hamza Ed-Douibi for his work on the tool implementation part, and the reviewers for their useful comments.  ... 
doi:10.1016/j.jss.2015.08.017 fatcat:lx5pddzlivf5npplctrbjl74kq