Utilizando o Array Type do WSO2 Data Services Server 2.5.x

Uma das novidades do WSO2 Data Services Server 2.5.x, já listada anteriormente, é que agora poderemos trabalhar com Array Types. Essa opção não existia anteriormente e as únicas maneiras que tínhamos para contornar, digamos que não eram muito legais. Por exemplo: invocar várias vezes o método ou concatenar as várias entradas em um campo string e posteriormente (em uma procedure ou algo do gênero) realizar o parser.

Ambas tem seus problemas, muitas requisições invocando várias vezes ou dificuldade de implementação (dependendo do banco de dados) para o caso de realizar o parser na procedure; mas, de uma forma ou outra, resolviam o problema. Só que com a implementação de Array Type resolvemos esse problema de maneira simples, eficiente e elegante!

Colocando a mão na massa

Digamos que temos um serviço onde nosso cliente quer listar vários produtos, nosso cliente tem todos os códigos dos produtos e quer o restante dos dados. Antigamente passaríamos para ele um método productById que recebe um id, algo como abaixo:

Mas agora tudo foi facilitado, vamos a “mágica”! Para alteração do método que aceite a entrada de um Array Type, serão necessários apenas dois passos.

Passo 1: editando a query

Teremos que trocar a query que antigamente aceitava apenas um parâmetro como entrada “id = :id” e colocaremos uma que aceita “N” parâmetros “id in (:id)”. Então na tela de edição da query do WSO2 Data Services Server, basta trocarmos, como fiz abaixo:

Passo 2: editando o tipo da entrada

E o segundo passo, editando os Input Mappings, basta trocarmos o tipo scalar para array, novamente, como fiz abaixo:

O resultado

E agora vamos a parte legal: o resultado!

Conclusão

Essa implementação facilitou muito e melhorou a qualidade de nossos serviços. Ainda não foi lançada a versão final, apenas algumas releases candidates, que podem ser acompanhadas pelo repositório de builders do WSO2 Carbon 3.0.0.

Deixo aqui o download dos arquivos utilizados para implementar o Array Type nesse exemplo, contém os arquivos abaixo:

  • Data Service antes da implementação do Array Type
  • Data Service depois da implementação do Array Type
  • Script de criação do banco de dados utilizado (MySQL)

Posts relacionados

Sobre Leonardo Saraiva

Atualmente arquiteto de integração no ICI - Instituto Curitiba de Informática. Trabalhando com SOA utilizando ferramental open source, focando principalmente na suíte WSO2. Idealizador e membro da comunidade WSO2 Brasil.
Esta entrada foi publicada em desenvolvimento e marcada com a tag , , , , , , , , , , , . Adicione o link permanente aos seus favoritos.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>