Code generation for RESTful APIs in HEADREST

Detalhes bibliográficos
Autor(a) principal: Santos, Telmo da Silva
Data de Publicação: 2018
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/35311
Resumo: Tese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2018
id RCAP_e9bd3e81c6fb686e2cbd3657ca9a5e7c
oai_identifier_str oai:repositorio.ul.pt:10451/35311
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Code generation for RESTful APIs in HEADRESTRESTRESTfulHTTPGeração de códigoAPIServiços WebTeses de mestrado - 2018Departamento de InformáticaTese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2018Os serviços web com APIs que aderem ao estilo arquitetural REST, conhecidos por serviços web RESTful, são atualmente muito populares. Estes serviços seguem um estilo cliente-servidor, com interações sem estado baseadas nos verbos disponibilizados pela norma HTTP. Como meio de especificar formalmente a interação entre os clientes e fornecedores de serviços REST, várias linguagens de definição de interfaces (IDL) têm sido propostas. No entanto, na sua maioria, limitam-se ao nível sintático das interfaces que especificam e à descrição das estruturas de dados e dos pontos de interação. A linguagem HEADREST foi desenvolvida como uma IDL que permite ultrapassar estas limitações, suportando a descrição das APIs RESTful também ao nível semântico. Através de tipos e asserções é possível em HEADREST não só definir a estrutura dos dados trocados mas também correlacionar o output com input e o estado do servidor. Uma das principais vantagens de ter descrições formais de APIs RESTful é a capacidade de gerar código boilerplate tanto para clientes como fornecedores. Este trabalho endereça o problema de geração de código para as APIs RESTful descritas com HEADREST e investiga de que forma as técnicas de geração de código existentes para os aspectos sintáticos das APIs RESTful podem ser estendidas para levar em conta também as propriedades comportamentais que podem ser descritas em HEADREST. Tendo em conta que a linguagem HEADREST adota muitos conceitos da Open API Specification (OAS), o trabalho desenvolvido capitaliza nas técnicas de geração de código desenvolvidas para a OAS e envolveu o desenvolvimento de protótipos de geração de código cliente e servidor a partir de especificações HEADREST.Web services with APIs that adhere to the REST architectural style, known as RESTful web services, have become popular. These services follow a client-server style, with stateless interactions based on standard HTTP verbs. In an effort to formally specify the interaction between clients and providers of RESTful services, various interface definition languages (IDL) have been proposed. However, for the most part, they limit themselves to the syntactic level of the interfaces and the description of the data structures and the interaction points. The HEADREST language was developed as an IDL that addresses these limitations, supporting the description of the RESTful APIs also at the semantical level. Through the use of types and assertions we not only define the structure of the data transmitted but also relate output with input and the state of the server. One of the main advantages of having formal descriptions of RESTful APIs is the ability to generate a lot of boilerplate code for both clients and servers. This work addresses the problem of code generation for RESTful APIs described in HEADREST and aims to investigate how the existing code generation techniques for the syntactical aspects of RESTful APIs can be extended to take into account also the behavioural properties that can be described in HEADREST. Given that HEADREST adopts many concepts from the Open API Specification (OAS), this work capitalised on the code generation tools available for OAS and encompassed the development of a prototypical implementation of a code generator for clients and servers from HEADREST specifications.Lopes, Maria Antónia Bacelar da Costa, 1968-Vasconcelos, Vasco Thudichum, 1964-Repositório da Universidade de LisboaSantos, Telmo da Silva2018-11-12T11:38:43Z201820182018-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/35311TID:202011380enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T16:31:11Zoai:repositorio.ul.pt:10451/35311Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:49:47.432470Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Code generation for RESTful APIs in HEADREST
title Code generation for RESTful APIs in HEADREST
spellingShingle Code generation for RESTful APIs in HEADREST
Santos, Telmo da Silva
REST
RESTful
HTTP
Geração de código
API
Serviços Web
Teses de mestrado - 2018
Departamento de Informática
title_short Code generation for RESTful APIs in HEADREST
title_full Code generation for RESTful APIs in HEADREST
title_fullStr Code generation for RESTful APIs in HEADREST
title_full_unstemmed Code generation for RESTful APIs in HEADREST
title_sort Code generation for RESTful APIs in HEADREST
author Santos, Telmo da Silva
author_facet Santos, Telmo da Silva
author_role author
dc.contributor.none.fl_str_mv Lopes, Maria Antónia Bacelar da Costa, 1968-
Vasconcelos, Vasco Thudichum, 1964-
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Santos, Telmo da Silva
dc.subject.por.fl_str_mv REST
RESTful
HTTP
Geração de código
API
Serviços Web
Teses de mestrado - 2018
Departamento de Informática
topic REST
RESTful
HTTP
Geração de código
API
Serviços Web
Teses de mestrado - 2018
Departamento de Informática
description Tese de mestrado, Engenharia Informática (Engenharia de Software) Universidade de Lisboa, Faculdade de Ciências, 2018
publishDate 2018
dc.date.none.fl_str_mv 2018-11-12T11:38:43Z
2018
2018
2018-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/35311
TID:202011380
url http://hdl.handle.net/10451/35311
identifier_str_mv TID:202011380
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134431589433344