especificação. ◦ Dificulta mudanças na especificação ao longo do tempo. ◦ Promove versionamento muitas vezes desnecessário da API. => fetch("/users/1/photo") GET /users/:id/photo
linguagens de consulta. ◦ Diminuir necessidade de alteração na especificação. ◦ Requer implementação em ambos os lados. Melhoria no modelo QUERY users[1].photo POST /query
busca através de linguagens de consulta. ◦ Mudanças na especificação não influenciam. ◦ Requer implementação apenas no cliente. Modelo proposto QUERY users[1].photo GET ou POST /...
de uma ferramenta. 2. Desenvolver especificação da ferramenta. ◦ Ser replicável em diversas plataformas. 3. Implementar ferramenta para validação. ◦ Analisar resultados. 4. Disponibilizar ferramenta para comunidade de dev. ◦ Open Source.
intermediador. ◦ Consulta de dados no intermediador. • Onze funçõ es no total ◦ Quatro responsá veis por criar o intermediador. ◦ Três para analisar consultas atravé s do formato AST. ◦ Quatro para transformar consultas em requisiçõ es na API.
aplicação. ◦ Diferente código de busca. (sem/com ferramenta) • Três perguntas. (Q1, Q2, Q3) ◦ Fluxo de dados pré-determinado. ◦ Resposta exata. • Seis entidades. (SWAPI) ◦ API REST.
dados. ◦ C1: Mudança de acesso. ◦ C2: Mudança no nível da estrutura de resposta. ◦ C3: Introdução de novos endereços. ◦ C4: Substituição de endereço deprecated. • Não acumulativas.
◦ 91,5% de acerto (C4 não permitiu 100%). • Consultas com melhor desempenho. (C3) ◦ Redução de 53% no nú mero de requisições. ◦ Evitou transferência de 4.23 kb de dados. • Atraso em 1.7 segundos na execuçã o. ◦ Tempo de busca de metadados == 70% atraso inicial.
novos modelos de comunicaçã o. • Vantagens do modelo proposto ◦ Diminuir preocupaçã o de clientes em estar continuamente atualizando seu có digo de busca a cada mudança na API ◦ Direcionar desenvolvedores de clientes à implementaçã o de có digos de busca independente de especificaçã o de API. • Custos de integração no cliente e overhead. ◦ Limitado acesso em APIs que possuem metadados.
de consultas. ◦ Linguagens de consulta. ◦ Descriçã o dos metadados de APIs. • Possíveis benefícios da composiçã o de serviços. ◦ Não testado. • Ferramenta e adaptador JavaScript. ◦ https://github.com/mateusmaso/graphql-jay ◦ https://github.com/mateusmaso/graphql-jay-hyperschema
novos adaptadores para formatos de APIs. ◦ OpenAPI, RAML, API Blueprint. • Implementar ferramenta em outras plataformas. ◦ Mobile, Desktop. • Melhorar algoritmo de aná lise de consultas. Trabalhos futuros