skip to main content
10.1145/3624309.3624322acmotherconferencesArticle/Chapter ViewAbstractPublication PagessblpConference Proceedingsconference-collections
research-article

Uma DSL para gerar APIs RESTFul em Haskell

Published:02 November 2023Publication History

ABSTRACT

O repentino avanço da necessidade de utilização de aplicações Web ocorreu em paralelo com a dificuldade de produtividade e automatização de processos que a envolvem. Para abstrair e automatizar o processo de criação da estrutura do backend, pode-se empregar uma Domain Specific Language (DSL) que especifique todas as funcionalidades desejadas. Desta forma, por meio de um arquivo de entrada no formato JSON, é possível definir as informações necessárias para a geração e disponibilização de um serviço REST. Portanto, o objetivo deste trabalho é especificar e desenvolver uma DSL e interpretá-la utilizando a linguagem de programação Haskell para abstração da camada de backend, complementando o ecossistema desta linguagem, visto que a mesma possui um número reduzido ferramentas para desenvolvimento Web, fazendo com que a mesma ainda possua baixa adesão em aplicações nesta área. Com isso, espera-se que um programador iniciante consiga desenvolver uma API REST para suas demandas e necessidades, de forma rápida e com as garantias provenientes de uma linguagem com sistema de tipos bastante restritivo.

References

  1. Michael D Adams and Thomas M DuBuisson. 2012. Template your boilerplate: Using Template Haskell for efficient generic programming. ACM SIGPLAN Notices 47, 12 (2012), 13–24.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. James Cheney and Ralf Hinze. 2003. Phantom types. Technical Report. Technical Report CUCIS TR20003-1901, Cornell University.Google ScholarGoogle Scholar
  3. Marco Antonio Copetti 2012. Um processo integrado para qualidade em model-driven engineering. (2012).Google ScholarGoogle Scholar
  4. Antonio Delgado, A Estepa, and Rafael Estepa. 2007. WAINE-Automatic Generator of Web Based Applications. In International Conference on Web Information Systems and Technologies, Vol. 2. SCITEPRESS, 226–233.Google ScholarGoogle Scholar
  5. Hamza Ed-Douibi, Javier Luis Cánovas Izquierdo, Abel Gómez, Massimo Tisi, and Jordi Cabot. 2016. EMF-REST: generation of RESTful APIs from models. In Proceedings of the 31st Annual ACM Symposium on Applied Computing. 1446–1453.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Martin Fowler. 2010. Domain-specific languages. Pearson Education.Google ScholarGoogle Scholar
  7. Omar S Gómez, Raúl H Rosero, and Karen Cortés-Verdín. 2020. CRUDyLeaf: a DSL for generating spring boot REST APIs from entity CRUD operations. Cybernetics and Information Technologies 20, 3 (2020), 3–14.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Paul Hudak and Joseph H Fasel. 1992. A gentle introduction to Haskell. ACM Sigplan Notices 27, 5 (1992), 1–52.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Timothy Karungu, Lawrence Nderu, and Dennis Kaburu. 2022. An Enhanced Automatic Generation of CRUD Operations in React-JS. (2022).Google ScholarGoogle Scholar
  10. Benoît Langlois, Consuela-Elena Jitia, and Eric Jouenne. 2007. DSL classification. In OOPSLA 7th workshop on domain specific modeling.Google ScholarGoogle Scholar
  11. Marco Livraghi. 2016. Automatic generation of Web crud applications. (2016).Google ScholarGoogle Scholar
  12. Marjan Mernik, Jan Heering, and Anthony M Sloane. 2005. When and how to develop domain-specific languages. ACM computing surveys (CSUR) 37, 4 (2005), 316–344.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Oscar M Pereira, Rui L Aguiar, and Maribel Yasmina Santos. 2010. CRUD-DOM: a model for bridging the gap between the object-oriented and the relational paradigms. In 2010 Fifth International Conference on Software Engineering Advances. IEEE, 114–122.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Irum Rauf and Ivan Porres. 2011. Beyond crud. In REST: From Research to Practice. Springer, 117–135.Google ScholarGoogle Scholar
  15. Roberto Rodriguez-Echeverria, Juan C. Preciado, Javier Sierra, Jose M. Conejero, and Fernando Sanchez-Figueroa. 2018. AutoCRUD: Automatic generation of CRUD specifications in interaction flow modelling language. Science of Computer Programming 168 (2018), 165–168. https://doi.org/10.1016/j.scico.2018.09.004Google ScholarGoogle ScholarCross RefCross Ref
  16. Douglas C Schmidt 2006. Model-driven engineering. Computer-IEEE Computer Society- 39, 2 (2006), 25.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sean Seefried, Manuel Chakravarty, and Gabriele Keller. 2004. Optimising embedded dsls using template haskell. In Generative Programming and Component Engineering: Third International Conference, GPCE 2004, Vancouver, Canada, October 24-28, 2004. Proceedings 3. Springer, 186–205.Google ScholarGoogle ScholarCross RefCross Ref
  18. Tim Sheard and Simon Peyton Jones. 2002. Template meta-programming for Haskell. In Proceedings of the 2002 ACM SIGPLAN workshop on Haskell. 1–16.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M Šipek, D Muharemagić, B Mihaljević, and Aleksander Radovan. 2021. Next-generation Web Applications with WebAssembly and TruffleWasm. In 2021 44th International Convention on Information, Communication and Electronic Technology (MIPRO). IEEE, 1695–1700.Google ScholarGoogle Scholar
  20. Ciprian-Octavian Truica, Florin Radulescu, Alexandru Boicea, and Ion Bucur. 2015. Performance evaluation for CRUD operations in asynchronously replicated document oriented database. In 2015 20th International Conference on Control Systems and Computer Science. IEEE, 191–196.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Uma DSL para gerar APIs RESTFul em Haskell

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        SBLP '23: Proceedings of the XXVII Brazilian Symposium on Programming Languages
        September 2023
        110 pages
        ISBN:9798400716287
        DOI:10.1145/3624309

        Copyright © 2023 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 2 November 2023

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate22of50submissions,44%
      • Article Metrics

        • Downloads (Last 12 months)7
        • Downloads (Last 6 weeks)1

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format