Propostas Submetidos

DEI - FCTUC
Gerado a 2024-05-17 07:54:35 (Europe/Lisbon).
Voltar

Titulo Estágio

Criação automatizada de API GraphQl através de meta-modelos

Áreas de especialidade

Engenharia de Software

Local do Estágio

Lisboa

Enquadramento

O Genio é uma plataforma MDD (Model Drive Development) de desenvolvimento de software. Os modelos geridos nesta plataforma descrevem por completo a funcionalidade do sistema final. Os objetos de negócio são geridos nestes modelos e são estabelecidas relações entre eles.

O GraphQl permite uma visão diferente dos tradicionais webservices e serviços REST, onde em vez de ter assinaturas de métodos fechadas e múltiplos endpoints de chamada, tem um único endpoint e assinaturas que não estão fixas. Usa sim uma linguagem (GraphQl) onde o cliente decide o que e como pesquisar no sistema.

Este tipo de combinação executado por programação clássica pode-se tornar extremamente complexo, acabando por limitar o uso deste tipo de API’s a casos onde poucas entidades estão preparadas para ser correlacionadas.

Objetivo

O objectivo deste projecto é tirar partido de técnicas de Model Driven Development para inferir todo o código de definição e implementação destas API’s, de forma que estas possam ser aplicadas a sistema complexos, por exemplo com mais de 100 entidades.

Componentes a realizar

- Análise do modelo do Genio e das entidades de negócio geridas.
- Protótipo de camada de API em GraphQl sobre o servidor de negócio existente
- Gerador das entidades de negócio para GraphQl a partir do modelo
- Implementação dos handlers de pesquisa e mutação das entidades
- Integração da nova geração GraphQl na plataforma Genio

Plano de Trabalhos - Semestre 1

Fases do projecto

- Entrar em contacto com a metodologia de criação de aplicação através da plataforma Genio. Conhecer como o modelo relacional interage com a geração de código.

- Avaliar bibliotecas de definição de API’s GraphQl

Plano de Trabalhos - Semestre 2

Fases do projecto

- Criar os handlers GraphQl de pesquisa sobre as entidades de acordo com as suas relações, construindo automaticamente a query correta.
- Criar os handlers de mutação GraphQl e invocar as respectivas entidades de negócio.

- Padronizar os mecanismos criados e integrar solução na plataforma de modelação Genio.
- Testes de verificação e validação da funcionalidade.

Condições

Estágio presencial, bolsa de estágio, formação

Orientador

Rodrigo Serafim
rserafim@quidgest.pt 📩