Abstract
Web APIs have become first-class citizens on the Web, in particular, to provide a more unified access to heterogeneous data sources that organizations want to make publicly available. While REST APIs have become the norm to structure web APIs, they can be regarded as a server-side solution, offering default limited query capabilities and therefore forcing developers to implement ad-hoc solutions for clients requiring to perform complex queries on the data. Lately, GraphQL has gained popularity as a way to simplify this work. GraphQL is a query language for Web APIs specially designed to build client applications by providing an intuitive and flexible syntax for describing their data schema, requirements and interactions. In this paper we propose an approach for the generation of GraphQL schemas from UML class diagrams and IFML interaction models, two well-known standard modeling languages in the web engineering field, to facilitate the creation of web applications relying on this new GraphQL paradigm following a model-based approach. While UML is used to generate the GraphQL schema, IFML is used to derive the set of queries and modifications to be performed on that schema.
This work has been supported by the Spanish government (ref. TIN2016-75944-R).
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)
Brambilla, M., Cabot, J., Wimmer, M.: Model-Driven Software Engineering in Practice. Synthesis Lectures on Software Engineering. Morgan & Claypool Publishers, San Rafael (2012)
Brambilla, M., Fraternali, P.: Interaction Flow Modeling Language. Morgan Kaufmann, San Francisco (2014)
Ed-douibi, H., Cánovas Izquierdo, J.L., Cabot, J.: A UML profile for OData web APIs. In: Cabot, J., De Virgilio, R., Torlone, R. (eds.) ICWE 2017. LNCS, vol. 10360, pp. 420–428. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-60131-1_28
Fielding, R.T.: Architectural styles and the design of network-based software architectures (2000)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)
Fraternali, P.: Tools and approaches for developing data-intensive web applications: a survey. ACM Comput. Surv. 31(3), 227–263 (1999)
Herzig, D.M., Tran, T.: Heterogeneous web data search using relevance-based on the fly data integration. In: World Wide Web Conference, pp. 141–150 (2012)
Preda, N., Kasneci, G., Suchanek, F.M., Neumann, T., Yuan, W., Weikum, G.: Active knowledge: dynamically enriching RDF knowledge bases by web services. In: International Conference on Management of Data, pp. 399–410 (2010)
Quarteroni, S., Brambilla, M., Ceri, S.: A bottom-up, knowledge-aware approach to integrating and querying web data services. TWEB 7(4), 19:1–19:33 (2013)
Rossi, G., Pastor, O., Schwabe, D., Olsina, L. (eds.): Web Engineering: Modelling and Implementing Web Applications. Human-Computer Interaction Series. Springer, Heidelberg (2008)
Valderas, P., Pelechano, V.: A survey of requirements specification in model-driven development of web applications. TWEB 5(2), 10 (2011)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Rodriguez-Echeverria, R., Cánovas Izquierdo, J.L., Cabot, J. (2018). Towards a UML and IFML Mapping to GraphQL. In: Garrigós, I., Wimmer, M. (eds) Current Trends in Web Engineering. ICWE 2017. Lecture Notes in Computer Science(), vol 10544. Springer, Cham. https://doi.org/10.1007/978-3-319-74433-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-74433-9_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74432-2
Online ISBN: 978-3-319-74433-9
eBook Packages: Computer ScienceComputer Science (R0)