Skip to main content

HeadREST: A Specification Language for RESTful APIs

  • Chapter
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11665))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. API blueprint. https://apiblueprint.org/. Retrieved 7 Jan 2019

  2. 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)

    Article  MathSciNet  Google Scholar 

  3. 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

    Chapter  Google Scholar 

  4. 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)

    Article  MathSciNet  Google Scholar 

  5. Confident, a toolchain for the construction and evolution of REST APIs. http://rss.di.fc.ul.pt/tools/confident. Retrieved 7 Jan 2019

  6. Ferreira, F.: Automatic test generation for RESTful APIs. Master’s thesis, Faculty of Sciences, University of Lisbon (2017)

    Google Scholar 

  7. Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine (2000)

    Google Scholar 

  8. Fielding, R.T., Taylor, R.N.: Principled design of the modern web architecture. ACM Trans. Internet Technol. 2(2), 115–150 (2002)

    Article  Google Scholar 

  9. HTTP Working Group: SOAP: Simple object access protocol. https://tools.ietf.org/html/draft-box-http-soap-00. Retrieved 31 Jan 2019

  10. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    Article  Google Scholar 

  11. 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)

    Google Scholar 

  12. Open API Initiative. https://www.openapis.org. Retrieved 7 Jan 2019

  13. RESTful API Modeling Language. https://raml.org. Retrieved 7 Jan 2019

  14. Santos, T.: Code generation for RESTful APIs in headREST. Master’s thesis, Faculty of Sciences, University of Lisbon (2018)

    Google Scholar 

  15. Sensoria: Software Engineering for Service-Oriented Overlay Computers. http://sensoria.fast.de/. Retrieved 31 Jan 2019

Download references

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

Authors

Corresponding author

Correspondence to Francisco Martins .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics