Ferramentas de integração para experiência do desenvolvedor: Anypoint Studio

Ferramentas de integração para experiência do desenvolvedor: Anypoint Studio

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

[ad_1]

Francis Edwards, Analista de Integração da Saint-Gobain e MuleSoft Ambassador, é um experiente desenvolvedor MuleSoft. Ele falou na MuleSoft CONNECT: Agora, EMEA compartilhando ferramentas de integração úteis para ajudar os desenvolvedores a obter o máximo do Anypoint Studio. Abaixo, ele fornece uma visão sobre cada ferramenta que recomenda, bem como demonstra como ele criou um aplicativo Mule.

Grande parte do meu trabalho frequentemente produz uma variedade de APIs para a Saint-Gobain, pois é vital para gerenciar vendas / entregas de varejo e B2B. Como tal, tem sido importante para mim encontrar maneiras de simplificar e melhorar a forma como trabalho com o Anypoint Studio. Neste blog, vou discutir algumas das ferramentas adicionais que incorporei em meu trabalho diário com Anypoint Studio para desenvolvimento de API. Especificamente, discutirei como usar uma ferramenta online para teste de expressão regular, pesquisas negativas e seleção de nome de arquivo. Além disso, examinarei a formatação de dados de teste e a validação deles fora do Anypoint Studio usando o Notepad ++ e como lidar com arquivos grandes.

Ferramentas para manipulação de arquivos grandes para classificar dados

Quando vim para a Saint-Gobain pela primeira vez, descobri que havia vários problemas com a seleção e o teste de seus arquivos. Por exemplo, vários pontos finais produziram uma infinidade de arquivos com captação única – o que significa que eles pegaram todos os arquivos de uma vez. Isso causou problemas nos fluxos de recebimento de dados, pois enormes blocos de escolha eram necessários para lidar com uma infinidade de casos de negócios e processamento adicional, cada um com diferentes acordos de nível de serviço. A distinção entre maiúsculas e minúsculas também era um problema, pois as pessoas raramente seguiam as convenções de arquivo, que podem ser perdidas pelo processamento automatizado.

Para resolver esse problema, separei diferentes processos de negócios em diferentes fluxos com propriedades de atributo voltadas para as necessidades individuais dos diferentes arquivos coletados e processados. Expressões regulares para selecionar nomes de arquivo específicos e agrupamentos de tipo de arquivo eram necessárias para permitir que cada fluxo tivesse uma coleta de entrada que selecionasse apenas os arquivos necessários. Ele também precisava ser robusto o suficiente para lidar com a insensibilidade a maiúsculas e minúsculas. Existem vários testadores de expressão regular online, mas um que corresponde às bibliotecas de expressão regular Mule é regexterster.com. Todas as expressões que funcionam aqui funcionam dentro dos conectores MuleSoft, incluindo aquelas que negam a seleção de arquivos.

Testando expressões regulares com regextester.com

Para usar regextester.com, abra o site e verifique se os sinalizadores estão ativados (ignorando maiúsculas e minúsculas, global e multilinha). Isso reflete como o seletor de arquivos Mule funciona dentro das bibliotecas Mule.

Em Test Strings, listo vários nomes e tipos de arquivos que espero encontrar no terminal de entrada. Incluída está uma lista de arquivos zip que desejo que minha primeira expressão regular verifique, bem como vários arquivos de documentos e planilhas que espero encontrar no conteúdo desses mesmos arquivos zip.

Então, eu insiro a primeira expressão regular procurando por curingas inicialmente com um sufixo (.zip) ancorado no final da linha. Isso me permite selecionar apenas os arquivos zip e nada mais.

Em segundo lugar, eu amplio esta âncora zip e adiciono uma pesquisa negativa. Isso garante que eu ignore todos os arquivos zip e selecione apenas tudo e mais nada. Em meu aplicativo Mule de exemplo, demonstro o uso de capturas de arquivos que contêm um filtro de nome de arquivo usando expressões regulares para lidar com o processamento de arquivos zip e seu conteúdo de arquivo não zip quando coletados do mesmo terminal.

No arquivo de configuração acima, o primeiro fluxo (file-poll-for-zipfiles) coleta os arquivos que têm nomes de arquivo em conformidade com a expressão regular ”. * (. Zip).” Este arquivo é então gravado de volta no mesmo local com um nome de arquivo conhecido “zipfile.zip”. O transformador subsequente chama uma expressão Java para descompactar o conteúdo do arquivo zip do arquivo conhecido, que é expandido no mesmo local e o arquivo original é excluído. O arquivo ou arquivos de saída que não têm nomes de arquivo terminando em “.zip” são então selecionados pelo segundo fluxo (file-poll-for-zipoutputs), que usa a expressão regular “^ (. (?!. * . zip $)) * $. ” Esses arquivos podem continuar para o processamento subsequente, neste caso, a saída como um arquivo para um local diferente.

Usando o Notepad ++

Um segundo problema era validar, formatar e tornar a entrada de teste mais fácil de ler ou combinar as entradas e saídas do DataWeave. Eu uso o Notepad ++ para resolver esses problemas. Ele me permite identificar erros e oferece plug-ins para ver as declarações Xpath e descobrir quais dados eu preciso selecionar. Essa ferramenta me permite verificar os dados antes de inseri-los no MuleSoft e ajuda a validar ou invalidar os dados para fins de teste de fluxos do MuleSoft.

Ao usar dados XML como entradas em scripts DataWeave, é útil validá-los antes de serem usados ​​e formatá-los para que as transformações possam ser facilmente cruzadas.

Neste exemplo de XML linearizado, é difícil saber se o XML é válido.

Usando o plugin XML Tools Pretty print, o XML pode ser formatado para algo mais fácil de ler.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Posso ir um passo adiante e usar o mesmo plugin para validar o XML em relação ao esquema referenciado no shiporder.xsd.

Outro recurso útil do Notepad ++ é ver se um arquivo inclui um Byte Order Mark (BOM), isso pode ser visto no canto inferior direito e pode ser convertido usando o item de menu Codificação. Os scripts DataWeave, que manipulam a entrada XML que foi convertida em uma string antes do processamento, podem causar erros e devem ser manipulados para retirar o BOM da mensagem antes de qualquer transformação.

Em meu aplicativo Mule de exemplo, demonstro os transformadores Mule que o Notepad ++ imita para mostrar como um aplicativo Mule pode ser usado para replicar a funcionalidade do Notepad ++ ou, inversamente, a funcionalidade Mule para a qual o Notepad ++ pode ser usado para produzir os dados de teste.

No arquivo de configuração acima, o primeiro fluxo (file-poll-for-xml) coleta arquivos e usa um transformador Mule para converter a carga em uma string. Se o arquivo tiver um BOM nos dados codificados, ele falhará no módulo de validação ou nas transformações subsequentes, então usei o filtro de validação para testar o esquema XML. Se falhar, a mensagem é passada para um segundo subfluxo que envia o arquivo para um segundo local de coleta. O arquivo é então obtido do segundo local pelo terceiro fluxo (file-poll-for-bomfile) e um transformador java é usado para remover o BOM da mensagem que é então redirecionado para o primeiro fluxo. A segunda tentativa de passar o módulo de validação é subsequentemente bem-sucedida e a mensagem pode continuar para o processamento subsequente pelo primeiro fluxo.

Seu Emeditor

Finalmente, muito do meu tratamento de dados inclui arquivos grandes de até 2 Gb que podem exigir transformações e streaming. Os problemas com big data incluem incompatibilidades de codificação de caracteres ou caracteres especiais / de escape nos dados. Ser capaz de pesquisar e classificar dados para calcular os comprimentos e tipos de campo, encontrar desalinhamentos devido a delimitadores de problemas ou dados / caracteres incorretos pode dificultar a depuração. Para isso, utilizo o Emeditor, um editor especializado no tratamento de arquivos massivos. Isso me permite classificar facilmente colunas de dados, encontrando ou verificando se estão em conformidade com a especificação necessária e permitindo-me limpar ou saber como lidar com isso nas transformações do DataWeave, onde as funções ‘substituir’ ou ‘quando’ podem ser usadas para evitar exceções .

Simplificando, o Emeditor é a única ferramenta que posso usar para abrir arquivos grandes, verificar o tipo de codificação e verificar se há caracteres inválidos nele. Posso pesquisar usando expressões regulares, o que é útil para localizar caracteres especiais e caracteres Unicode em dados ASCII potenciais. Depois de ter certeza de que os dados são válidos, posso verificar e alterar delimitadores e classificar os dados por colunas, procurando entradas mínimas e máximas úteis, como mais longo, mais curto, de A a Z etc. Isso ajuda a descrever os dados quando estou escrever RAML ou criar esquemas para descrever os tipos de dados para os dados contidos.

Ele também encontra casos extremos para os dados ou discrepâncias conhecidas, permitindo-me incluí-los como casos gerenciados ao escrever o DataWeave. Na imagem abaixo, você pode ver onde estou escolhendo um campo de descrição dos dados, exceto quando o comprimento do campo está acima de um determinado valor, onde uma coluna secundária é escolhida para ser retornada.

Então, quais são os benefícios?

Em resumo, os benefícios de adicionar essas ferramentas externas ao uso do Anypoint Studio são numerosos. Ele permite que você:

  • Manipule dados para garantir dados válidos e inválidos para ajudar no teste e no tratamento de exceções.
  • Teste as expressões regulares em relação à matriz de strings obrigatórias / não obrigatórias.
  • A remoção das marcas de ordem de byte, especialmente para strings XML, garante o processamento correto.
  • Garante que delimitadores independentes dos dados reais possam ser especificados.

Mais importante, essas ferramentas complementam o Anypoint Studio, permitindo um desenvolvimento mais rápido do aplicativo Mule. Meu conselho é conhecer todas as ferramentas que você pode usar para testar e limpar dados, identificando prováveis ​​erros a serem tratados, pois esta é a base sobre a qual os aplicativos Mule maduros são construídos.

Se você tiver alguma dúvida, entre em contato comigo no LinkedIn ou durante o West Yorkshire MuleSoft Meetup. Você também pode encontrar mais discussões técnicas como esta durante um de nossos próximos Meetups do MuleSoft. Inscreva-se hoje para um evento local ou global virtual.


[ad_2]

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Luiz Presso