Code generation for RESTful APIs in HEADREST
Autor(a) principal: | |
---|---|
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 |