Tarefas do desenvolvedor de integração
Já que os aplicativos para iPhone normalmente transferem dados pela redes de celulares, a carga útil da mensagem deve ser a menor possível. Por essa razão, desencorajamos o uso de mensagens XML e encorajamos o uso de JSON por HTTP. O uso do novo JSON por ligação HTTP no WebSphere Integration Developer, expondo tal serviço é simples. Nesta seção, modificaremos o iPhoneServicesModule fornecido para fornecer um JSON por ligação HTTP para OrganizationInterface.
- Crie uma nova área de trabalho no WebSphere Integration Developer. Importe o arquivo de troca de projetos iPhoneServicesModule em iPhoneServicesModule.zip que você baixou na seção Pré-requisitos do desenvolvedor de integração. Também, ao importar no WebSphere Integration Developer, selecione Other -> Project Interchange. Veja a Figura 1.
- Quando estiver importado, abra o diagrama de montagem. O diagrama de
montagem contém o componente Java™ OrganizationInterfaceImpl que
implementa o OrganizationInterface (Figura 2). A Interface de Organização
contém um método, employeeSearch, que faz uma busca em
SearchCriteriaBO que resulta em um PageOfEmployeeBO contendo todos os
funcionários que correspondem ao critério de procura. A busca real de
funcionários é trivial neste tutorial. O código simplesmente resulta em dois
registros com o nome do funcionário definido pelo atributo fullName em
SearchCriteriaBO. Leve um pouco de tempo para se familiarizar com o módulo.
Figura 1. iPhoneServicesModule incompleto
Figura 2. Diagrama de montagem incompleto
- Abra o diagrama de montagem.
- Clique com o botão direito no componente Java OrganizationInterfaceImpl e selecione Generate Export -> HTTP Binding.
- No diálogo que aparecerá:
- Altere o caminho do contexto para
/OrganizationInterfaceImplMobile. - Pressione o botão Select ao lado do formato de data Padrão.
- No diálogo “Data Transformation Configuration”, selecione o UTF8JsonDataHandler dentro da categoria JSON e clique em Finish.
- Pressione o botão Select ao lado do seletor de Função.
- No diálogo “Function Selector Configuration”, selecione o método HTTP function selector based on URL and HTTP e clique em Finish.
- Clique em OK no diálogo “Configure HTTP Export Service”.
- Altere o caminho do contexto para
- Clique na exportação recém gerada e modifique o nome para
OrganizationInterfaceMobile. - Salve suas alterações no diagrama de montagem (Figura 3).
- Saiba mais sobre os vários seletores de função em Seletores de função HTTP pré-empacotados.
Figura 3. Diagrama de montagem completo
- Clique na exportação OrganizationInterfaceMobile e leve um pouco de
tempo para observar suas propriedades na visualização Properties (Figura 4).
Figura 4. Visualização Properties
Mapeie entradas e saídas de serviços para JSON
Nessa seção, certificaremos que todos os métodos na interface de serviços transportam objetos de negócios (BOs) de entrada e saída como objetos JSON.
- Na visualização Properties do OrganizationInterfaceMobile, clique em Advanced configuration.
- Você verá um tipo de método GET já definido na guia HTTP Method Settings.
Remova o método GET e adicione um método POST em seu lugar. Objetos JSON
completos serão enviados como entradas no corpo do POST, ao invés de enviar
parâmetros de solicitações em um método GET (Figura 5).
Figura 5. Configurações do método HTTP
- Vá até a seção “Method Bindings” e clique no único método na interface – employeeSearch.
- Observe que o método Native está definido para
/OrganizationInterfaceImplMobile/employeeSearch@GET. Remova essa entrada. - Adicione a entrada
/OrganizationInterfaceImplMobile/employeeSearch@POST. - Clique na guia Data Serialization e modifique os formatos de dados de entrada e saída para UTF8JsonDataHandler selecionando UTF8JsonHandler dentro da categoria JSON no diálogo “Data Transformation Configuration”. Isso define o formato de entrada e saída BO como JSON. Essa etapa é opcional, já que o formato de dados padrão na ligação está definido para UTF8JsonDataHandler.
- Clique na guia HTTP Method Settings e remova o tipo de método GET.
- Salve suas alterações no diagrama de montagem.
Teste o JSON por exportação HTTP
Nesta seção, testaremos a exportação OrganizationInterfaceMobile criada.
- Clique com o botão direito em OrganizationInterfaceMobile no diagrama de montagem e selecione Test component do menu.
- A operação employeeSearch está selecionada, e você verá a entrada BO searchCriteriaBO na seção “Initial request parameters”.
- Insira os seguintes valores em searchCriteriaBO, como mostra a Figura 6. Os
valores exprimem que você deseja encontrar funcionários chamados “John Doe”,
e que você quer a primeira página de resultados (por exemplo, zero
indexado). Você também não quer ter mais de 10 linhas por página, e os
resultados são classificados em ordem crescente por divisão (por exemplo,
divisão é a única coluna classificável neste exemplo):
- order = ASC
- rowsPerPage = 10
- pageIndex = 0
- fullName = John Doe
Figura 6. Teste da entrada BO
- Clique em Invoke na seção Events e clique no botão Continue - o círculo verde com o triângulo branco. Isso iniciará o WebSphere Process Server V6.2 no servidor do ambiente de teste do host local e executará o método de serviço employeeSearch. Seja paciente, já que isso pode levar algum tempo.
- Observe que o retorno é um PageOfEmployeeBO contendo um array de dois
EmployeeBOs (Figura 7).
Figura 7. Teste a saída BO
Informações para fornecer ao desenvolvedor para iPhone
Esta seção descreve as informações que o desenvolvedor para iPhone necessitará para criar um cliente de proxy Objective-C para invocar o serviço employeeSearch.
- Forneça o arquivo OrganizationInterface.wsdl. Esse arquivo será usado para
criar operações de correspondência e também como entrada e saída BOs para o
cliente. Nesse caso, uma simples imagem da interface é o suficiente (Figura
8).
Figura 8. OrganizationInterface
- Forneça detalhes para cada BO. Em nosso caso, possuímos três BOs e imagens
de cada serão o suficiente.
- SearchCriteriaBO (Figura 9).
Figura 9. SearchCriteriaBO
- EmployeeBO (Figura 10).
Figura 10. EmployeeBO
- PageOfEmployeeBO (Figura 11).
Figura 11. PageOfEmployeeBO
- SearchCriteriaBO (Figura 9).
- Clique na exportação OrganizationInterfaceMobile no diagrama de montagem e vá até a visualização Properties.
- Na visualização Properties, clique na seção Summary.
- Forneça a tabela que mapeia o nome do Método para o Terminal (Figura 12).
Figura 12. URLs dos terminais de serviço
- Forneça o endereço do servidor do WebSphere Process Server que o
desenvolvedor para iPhone pode usar para invocar o serviço. Por exemplo, o
desenvolvedor acaba invocando:
https://localhost:9445/iPhoneServicesModuleWeb/OrganizationInterfaceImplMobile/ employeeSearch
Seu URL pode ser diferente caso você tenha configurado o WebSphere Process Server para usar uma porta diferente.
