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 📩