Skip to main content

Formalising Solutions to REST API Practices as Design (Anti)Patterns

  • Conference paper
  • First Online:
Service-Oriented Computing (ICSOC 2021)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 13121))

Included in the following conference series:

  • 3154 Accesses

Abstract

REST APIs are nowadays the de-facto standard for Web applications. However, as more systems and services adopt the REST architectural style, many problems arise regularly. To avoid these repetitive problems, developers should follow good practices and avoid bad practices. Thus, research on good and bad practices and how to design a simple but effective REST API are essential. Yet, to the best of our knowledge, there are only a few concrete solutions to recurring REST API practices, like “API Versioning”. There are works on defining or detecting some practices, but not on solutions to the practices. We present the most up-to-date list of REST API practices and formalize them in the form of REST API (anti)patterns. We validate our design (anti)patterns with a survey and interviews of 55 developers.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 109.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.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

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://groups.google.com/g/google.public.web-apis/c/YOHPWSqcFBA.

  2. 2.

    https://www.programmableweb.com/apis/directory.

  3. 3.

    http://martinfowler.com/articles/richardsonMaturityModel.html.

  4. 4.

    https://bit.ly/3i5CIsc.

  5. 5.

    https://www.infoq.com/articles/rest-anti-patterns/.

  6. 6.

    https://dotnet.microsoft.com/apps/aspnet.

  7. 7.

    https://spring.io/projects.

  8. 8.

    https://bit.ly/34AUbRu and https://bit.ly/3i6X8Ry.

  9. 9.

    https://bit.ly/2R9clXf.

  10. 10.

    https://bit.ly/2RY62pW and https://git.io/JGRwC.

  11. 11.

    https://git.io/JwWC6.

  12. 12.

    https://git.io/JwQPs and https://bit.ly/3vDwdB1.

  13. 13.

    https://bit.ly/3uCO9du.

  14. 14.

    https://acmsigsoft.github.io/EmpiricalStandards/docs/.

References

  1. Brown, W.H., Malveau, R.C., McCormick, H.W.S., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, New York (1998)

    Google Scholar 

  2. Fredrich, T.: Restful service best practices. Recommendations for Creating Web Services, pp. 1–34 (2012)

    Google Scholar 

  3. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: abstraction and reuse of object-oriented design. In: Nierstrasz, O.M. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 406–431. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-47910-4_21

    Chapter  Google Scholar 

  4. Kaminski, P., Litoiu, M., Müller, H.: A design technique for evolving web services. In: Proceedings of the 2006 CASCON, p. 23-es (2006)

    Google Scholar 

  5. Landis, J.R., Koch, G.G.: The measurement of observer agreement for categorical data. Biometrics 33, 159–174 (1977)

    Article  Google Scholar 

  6. Leitner, P., Michlmayr, A., Rosenberg, F., Dustdar, S.: End-to-end versioning support for web services. In: 2008 IEEE SCC, vol. 1, pp. 59–66 (2008)

    Google Scholar 

  7. Lemlouma, T., Layaïda, N.: NAC: a basic core for the adaptation and negotiation of multimedia services. Opera Project, Inria (2001)

    Google Scholar 

  8. Liskin, O., Singer, L., Schneider, K.: Teaching old services new tricks: adding HATEOAS support as an afterthought. In: Proceedings of the 2nd WS-REST 2011, pp. 3–10 (2011)

    Google Scholar 

  9. Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Hoboken (2002)

    Google Scholar 

  10. Masse, M.: REST API Design Rulebook: Designing Consistent RESTful Web Service Interfaces. O’Reilly Media, Inc., Sebastopol (2011)

    Google Scholar 

  11. Murphy, L., Alliyu, T., Macvean, A., Kery, M.B., Myers, B.A.: Preliminary analysis of REST API style guidelines. Ann Arbor 1001, 48109 (2017)

    Google Scholar 

  12. Palma, F., Gonzalez-Huerta, J., Founi, M., Moha, N., Tremblay, G., Guéhéneuc, Y.G.: Semantic analysis of restful APIs for the detection of linguistic patterns and antipatterns. IJCIS 26(02), 1742001 (2017)

    Google Scholar 

  13. Peffers, K., Tuunanen, T., Rothenberger, M.A., Chatterjee, S.: A design science research methodology for information systems research. J. Manag. Inf. Syst. 24(3), 45–77 (2007)

    Article  Google Scholar 

  14. Petrillo, F., Merle, P., Moha, N., Guéhéneuc, Y.-G.: Are REST APIs for cloud computing well-designed? An exploratory study. In: Sheng, Q.Z., Stroulia, E., Tata, S., Bhiri, S. (eds.) ICSOC 2016. LNCS, vol. 9936, pp. 157–170. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-46295-0_10

    Chapter  Google Scholar 

  15. Rodríguez, C., et al.: REST APIs: a large-scale analysis of compliance with principles and best practices. In: Bozzon, A., Cudre-Maroux, P., Pautasso, C. (eds.) ICWE 2016. LNCS, vol. 9671, pp. 21–39. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-38791-8_2

    Chapter  Google Scholar 

  16. Rodriguez, J.M., Crasso, M., Zunino, A., Campo, M.: Automatically detecting opportunities for web service descriptions improvement. In: Cellary, W., Estevez, E. (eds.) I3E 2010. IAICT, vol. 341, pp. 139–150. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16283-1_18

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Van Tuan Tran .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Tran, V.T., Abdellatif, M., Guéhéneuc, YG. (2021). Formalising Solutions to REST API Practices as Design (Anti)Patterns. In: Hacid, H., Kao, O., Mecella, M., Moha, N., Paik, Hy. (eds) Service-Oriented Computing. ICSOC 2021. Lecture Notes in Computer Science(), vol 13121. Springer, Cham. https://doi.org/10.1007/978-3-030-91431-8_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-91431-8_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-91430-1

  • Online ISBN: 978-3-030-91431-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics