Abstract
Representational State Transfer (REST), an architectural style providing an abstract model of the web, is by far the most popular platform to build web applications. Developing such applications require well-documented interfaces. However, and despite important initiatives such as the Open API Specification, the support for interface description is currently quite limited, focusing essentially on simple syntactic aspects. In this paper we present HeadREST, a dependently-typed language that allows describing semantic aspects of interfaces in a style reminiscent of Hoare triples.
An early version of this paper was presented at the 24th International Conference on Types for Proofs and Programs, in June 2018.
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
API blueprint. https://apiblueprint.org/. Retrieved 7 Jan 2019
Bierman, G.M., Gordon, A.D., Hritcu, C., Langworthy, D.E.: Semantic subtyping with an SMT solver. J. Funct. Program. 22(1), 31–105 (2012)
Boreale, M., et al.: SCC: a service centered calculus. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 38–57. Springer, Heidelberg (2006). https://doi.org/10.1007/11841197_3
Boreale, M., Bruni, R., De Nicola, R., Loreti, M.: CaSPiS: a calculus of sessions, pipelines and services. Math. Struct. Comput. Sci. 25(3), 666–709 (2015)
Confident, a toolchain for the construction and evolution of REST APIs. http://rss.di.fc.ul.pt/tools/confident. Retrieved 7 Jan 2019
Ferreira, F.: Automatic test generation for RESTful APIs. Master’s thesis, Faculty of Sciences, University of Lisbon (2017)
Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)
Fielding, R.T., Taylor, R.N.: Principled design of the modern web architecture. ACM Trans. Internet Technol. 2(2), 115–150 (2002)
HTTP Working Group: SOAP: Simple object access protocol. https://tools.ietf.org/html/draft-box-http-soap-00. Retrieved 31 Jan 2019
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)
Lanese, I., Martins, F., Vasconcelos, V.T., Ravara, A.: Disciplining orchestration and conversation in service-oriented computing. In: Proceeedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007), pp. 305–314 (2007)
Open API Initiative. https://www.openapis.org. Retrieved 7 Jan 2019
RESTful API Modeling Language. https://raml.org. Retrieved 7 Jan 2019
Santos, T.: Code generation for RESTful APIs in headREST. Master’s thesis, Faculty of Sciences, University of Lisbon (2018)
Sensoria: Software Engineering for Service-Oriented Overlay Computers. http://sensoria.fast.de/. Retrieved 31 Jan 2019
Acknowledgments
This work was supported by the Foundation for Science and Technology (FCT) through project CONFIDENT (PTDC/EEI-CTP/4503/2014) and the LASIGE research unit (UID/CEC/00408/2019).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Vasconcelos, V.T., Martins, F., Lopes, A., Burnay, N. (2019). HeadREST: A Specification Language for RESTful APIs. In: Boreale, M., Corradini, F., Loreti, M., Pugliese, R. (eds) Models, Languages, and Tools for Concurrent and Distributed Programming. Lecture Notes in Computer Science(), vol 11665. Springer, Cham. https://doi.org/10.1007/978-3-030-21485-2_23
Download citation
DOI: https://doi.org/10.1007/978-3-030-21485-2_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-21484-5
Online ISBN: 978-3-030-21485-2
eBook Packages: Computer ScienceComputer Science (R0)