Criando serviços com o WSO2 – Parte 1 – WSO2 Data Services

Depois de publicar o post Criando um ambiente SOA com WSO2 estamos recebendo vários emails e comentários de usuários que estão com diversas dúvidas e como usar as ferramentas do WSO2 integrada, por esse motivo, hoje vamos começar uma série de posts explicativos de como criar um serviço completo (DS, WSAS, BUS) usando as ferramentas WSO2.

Antes de começar vamos entender a arquitetura que vamos estar utilizando, veja abaixo:

  • DataService será responsável por recuperar as informações em uma origem de dedos, pode ser um banco de dados (MySQL, Postegres, SQLServer, Oracle, etc…) pode ser em um arquivo XML ou em um arquivo CSV.
  • Application Server que será responsável por fazer a orquestração dos nossos serviços e pela regra de negócio
  • BUS será responsável por expor nosso serviços para os clientes (Mobile, Portals, Desktop, etc…)

O nosso cenário para o serviço de teste será um cadastro de funcionário para o setor de RH de uma empresa, vamos estar utilizando o banco de dados MySQL 5. Então mãos no teclado!!

Criando a Base de Dados

[sourcecode language=”sql”]

create database rh;
use rh;

CREATE TABLE funcionario (
id_funcionario int(10) NOT NULL AUTO_INCREMENT,
nome_funcionario varchar(100) NOT NULL,
endereco_funcionario varchar(100) NOT NULL,
sexo_funcionario char(1) NOT NULL,
data_aniversario datetime NOT NULL,
PRIMARY KEY (id_funcionario),
UNIQUE KEY PK_Funcionario (id_funcionario)
);

INSERT INTO funcionario (nome_funcionario, endereco_funcionario, sexo_funcionario, data_aniversario) VALUES (‘Leandro Prado 1’, ‘Rua xyz 367’, ‘M’, ‘2000-10-10’);
INSERT INTO funcionario (nome_funcionario, endereco_funcionario, sexo_funcionario, data_aniversario) VALUES (‘Leandro Prado 2’, ‘Rua xyz 367’, ‘M’, ‘2000-10-10’);

[/sourcecode]

Criando um WSO2 DataService

1. Dentro do Management Console do DataService clique no menu DataServices -> Create

2. Coloque no nome e a descrição do Serviço e clique em Next

3. Agora vamos adionar a nossa fonte de dados, selecione Add New Data Source

4. Na tela de configuração do DataSource temos os seguintes campos:

  • DataSource id:
  • DataSource Type:
  • Database Engine:
  • Driver Class:
  • JDBC URL:
  • User Name:
  • Password:
  • Min. Pool Size:
  • Max. Pool Size:
  • AutoCommit:

Clique no botão Test Connection para verificar se a conexão com o banco está correta.

Se esse o erro acima ocorrer significa que está faltando o jar de conexão com o MySQL, então acesse esse link e baixe o conector e copie o jar para a pasta wso2/wso2dataservices-2.2.1/repository/components/lib e depois restart o serviço do WSO2 DataServices.

5. Na próxima tela vamos criar as querys que nosso serviço vai executar

6. Na tela para adicionar uma nova query temos os seguintes campos:

  • Query ID:
  • Data Source:
  • SQL:
  • Input Mappging
  • Grouped by element:
  • Row name:
  • Row namespace:
  • Output Mappging:

7. Se sua query possuir parâmetros de entrada deve ser adicionado clicando no botão Input Mappings, essa tela possui os seguintes campos:

  • Mapping Name
  • SQL Type
  • IN/OUT Type
  • Ordinal

8. Para recuperar os dados de retorno da sua query clique no botão Output Mappings e adicione os campos que deseja retornar, essa tela possui os seguintes campos:

  • Mapping Type
  • Output field name
  • Data source column Name
  • Schema Type
  • Allowed User Roles

Veja como vai ficar com todos nossos campos de saída mapeados

9. Na próxima tela é para adicionar as operações (métodos) do serviço, cada query vai ter uma operação:

10. Na tela Add New Operation temos um campo para colocar o nome da operação (método) e uma combo para selecionar qual query essa operação vai chamar

Veja como fica a nossa operação PesquisarFuncionario.

11. Clique em Finish para criar o nosso DataService, não precisamos preencher os Resources. Veja que nosso serviço já é listado.

12. Vamos fazer o teste para verificar se tudo está correto e funcionando, clique em Try this service

Conclusão

Criar DataServices usando a ferramenta do WSO2 é muito fácil, intuitivo e produtivo, em apenas alguns minutos conectamos na base de dados, fazemos uma query e retornamos os dados via XML sem escrever nenhuma linha de código.

Os serviços de DataServices também pode ser criados através de um plugin para o eclipse, veja aqui.

No próximo post estaremos criando a camada de negócio usando o WSAS

Até a próxima!

Sobre Leandro Prado

Leandro Silveira Prado é Premier Field Engineer na Microsoft especializado em Application Lifecycle Management.