studio
2021.10
false
Guia do usuário do Studio
Last updated 23 de set de 2024

Como carregar serviços web em bibliotecas

O Studio pode gerar atividades diretamente de serviços web SOAP ou REST, ou coleções do Postman por meio da janela Editor de Serviço.

Serviços web SOAP e REST

A janela permite que você carregue automaticamente todos os métodos ou pontos de extremidade em um determinado serviço web, tanto REST quanto SOAP, desde que o link fornecido inclua a definição dos serviços – Swagger ou WSDL.

Depois de carregar, selecione a partir de quais pontos de extremidade ou métodos as atividades devem ser criadas automaticamente. Todos os itens selecionados serão mostrados no painel Atividades, no Namespace que você forneceu na janela Editor de Serviço.

É possível então empacotar essas bibliotecas como um arquivo .nupkg e publicá-lo no Orchestrator ou em um local personalizado. Como resultado, você pode compartilhar facilmente sua atividade recém-definida com outros desenvolvedores que trabalham com você.

Como adicionar serviços

Siga as etapas abaixo para gerar atividades a partir de serviços web:

  1. Crie uma biblioteca no Studio, conforme explicado na página Sobre bibliotecas.
  2. Na aba Design, clique em Novo Serviço ou clique com o botão direito do mouse em Serviços no painel Projeto, e depois clique em Novo Serviço. A janela Editor de Serviço será exibida.


  3. Adicione um caminho de arquivo ou link para o recurso Swagger ou WSDL. Clique em Carregar. Todos os pontos de extremidade definidos a partir do serviço web já estarão carregados na janela Editor de Serviço.


  4. Digite o método ou a operação que você precisa na caixa de pesquisa Pesquisar Operações e exiba os resultados abaixo. Para o Swagger, os métodos estarão marcados com cores diferentes em cada ponto de extremidade. Use a caixa de seleção Desmarcar Todos para desmarcar todos os pontos de extremidade e escolha os pontos de extremidade que você deseja carregar. O namespace será gerado automaticamente. Basta digitar um novo nome para alterá-lo.
  5. Clique em Salvar. O serviço já estará integrado na árvore do projeto.


  6. Para usar as atividades geradas no painel Designer, acesse o painel Atividades, pesquise pelo namespace do serviço na seção de atividades Disponíveis e arraste cada atividade para o painel.
    Observação:
    Para serviços SOAP, é recomendável carregar apenas clientes SOAP, em vez de clientes HttpGet ou HttpPost.

    Para serviços Swagger, quando o serviço não puder desserializar a resposta do servidor, é recomendável inspecionar o esquema do Swagger e pesquisar as propriedades necessárias nas definições do modelo.

Para editar um serviço, clique com o botão direito do mouse no serviço no painel Projeto, em Serviços e selecione Editar Serviço.

Observe que se seu projeto estiver sob controle de origem, fazer check-out apenas do arquivo project.json da biblioteca habilita a opção Editar Serviços para os arquivos .xaml com serviços web SOAP ou REST carregados.
Adicionar e editar um serviço também será refletido no arquivo project.json contendo a definição da biblioteca e no documento de serviço. Um nó webServices é adicionado no arquivo project.json e cada serviço é identificado pelos seguintes elementos:


Parâmetro

Description

namespace

O nome do serviço fornecido na janela Editor de Serviço.

serviceDocument

O caminho para o arquivo .json com os metadados para o serviço Swagger ou SOAP. O arquivo será usado quando o serviço for reparado e precisar ser usado como parte do projeto.

webDocumentUri

O caminho do arquivo ou o link para o recurso SOAP ou Swagger (fornecido quando o serviço foi criado na janela Editor de Serviço).

uniqueReference

Uma referência necessária para o controle de versão do serviço.

Como reparar serviços

Os arquivos dll gerados a partir dos serviços web SOAP ou REST não são enviados para repositórios de controle de origem. Portanto, ao verificar bibliotecas que contêm serviços, os projetos têm atividades não resolvidas no painel Designer.
Para reparar essas atividades e gerar novamente o arquivo .dll do serviço, clique com o botão direito do mouse no nó de serviço no painel Projeto e selecione Reparar Serviço no menu de contexto.


Os metadados do serviço SOAP ou REST e as informações adicionais serão armazenados em um arquivo .json para cada serviço carregado no Studio. Se estiver faltando o arquivo .json associado de um serviço carregado, a opção do menu de contexto Reparar Serviços para o nó Serviços permite que você gere os arquivos .json ausentes usando o link para o descritor do documento da web, que foi fornecido quando o serviço foi criado. Como consequência, os filtros que podem ter sido aplicados quando o serviço foi gerado pela primeira vez não serão mais aplicados e todos os recursos fornecidos pelo caminho ou link acima referido serão importados.
Publicar bibliotecas usando a interface do usuário da linha de comando UiPath.Studio.CommandLine.exe detalhada na página Parâmetros da linha de comando para atualização em massa não considera os serviços web.
Observação: atividades geradas a partir de serviços SOAP ou REST não podem ser localizadas no Studio.

Para chamar as atividades geradas de serviços web várias vezes em um loop, crie um fluxo de trabalho separado do arquivo principal da biblioteca e invoque o método de serviço lá. No fluxo de trabalho principal, use a atividade Invoke Workflow File dentro de uma atividade For Each, e invoque o fluxo de trabalho criado anteriormente.

Para obter mais detalhes sobre atividades geradas a partir de serviços da Web, consulte Atividades geradas a partir de Serviços da Web.

Como importar namespaces

O Studio v2020.4 traz uma alteração inovadora em termos de bibliotecas com serviços Swagger importados. A maneira como o Studio interpreta os arquivos .json dos serviços Swagger foi alterada, gerando assim problemas de compatibilidade retroativos apenas se um serviço existente for editado na janela Editar Serviço.

No seguinte exemplo, ilustramos a alteração usando o Serviço web de demonstração da Petstore.

Antes do Studio v2020.4, depois de adicionar o serviço a um projeto de biblioteca e usar "Procurar por Tipos…", os seguintes namespaces eram encontrados no nome de assembly do SwaggerPetstore:



Para fazer uma busca detalhada em UiPath.WebClient._ClientNamespace, os seguintes tipos podem ser encontrados:


Portanto, se a atividade AddPet tiver sido usada em um arquivo xaml de uma biblioteca do Studio, ela teria sido parte do UiPath.WebClient._ClientNamespace. O tipo _ClientAddPetRequest foi usado para gerar uma solicitação, como no trecho abaixo:
xmlns:uw_="clr-namespace:UiPath.WebClient.<em>ClientNamespace;assembly=SwaggerPetstore" 
...
<uw</em>:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:<em>ClientAddPetRequest Body="{x:Null}" />
      </uw</em>:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>xmlns:uw_="clr-namespace:UiPath.WebClient.<em>ClientNamespace;assembly=SwaggerPetstore" 
...
<uw</em>:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:<em>ClientAddPetRequest Body="{x:Null}" />
      </uw</em>:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>

Ao usar o Studio v2020.4, o seguinte namespace pode ser encontrado ao importar o mesmo serviço web:



Os seguintes tipos são encontrados ao expandir o UiPath.WebClient.PetClientNamespace:


Portanto, se a atividade AddPet for usada em um arquivo xaml de uma biblioteca do Studio criada com a v2020.4, ela faz parte do UiPath.WebClient.PetClientNamespace, e o tipo PetClientAddPetRequest é usado para gerar uma solicitação. Eles são namespaces e tipos diferentes das bibliotecas criadas com versões anteriores à v2020.4.

Veja abaixo um trecho de uma biblioteca desse tipo criada com a v2020.4:

xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <a href="uwp:AddPetActivity.Request">uwp:AddPetActivity.Request</a>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="["https://petstore.swagger.io/v2"]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <a href="uwp:AddPetActivity.Request">uwp:AddPetActivity.Request</a>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>

Coleções do Postman

O aplicativo Postman pode ser usado para criar e agrupar as definições de API em coleções, organizando e realizando suas solicitações juntas. O Postman aceita scripts para passar dados entre solicitações de API. Confira a documentação online do Postman para saber como criar uma coleção.

Se você já tiver uma coleção do Postman, pode carregar suas solicitações no Studio e gerar uma atividade. A manutenção da coleção é feita no Postman e as alterações também serão empregadas no seu fluxo de trabalho.

O Studio recebe acesso a uma coleção do Postman por meio de uma chave de API, que deve ser adicionada à janela do Editor de Serviço, no campo Arquivo ou Link. A chave de API é uma chave de toda a conta gerada na página Configurações de perfil do Postman > Chaves de API e não uma chave de API gerada pelo compartilhamento de uma coleção. Portanto, as modificações de solicitações serão feitas apenas no Postman, e não no Studio.

O Studio carrega todas as solicitações definidas na coleção, e as solicitações não podem ser executadas individualmente. Editar e reparar uma coleção no Studio é feito da mesma maneira que para os serviços web SOAP ou REST.
Observação: o acesso à coleção só é compatível por meio da chave de API. O carregamento de um arquivo de esquema JSON pode causar erros inesperados.

Pré-requisitos para coleções do Postman

É recomendável reiniciar sua máquina depois de instalar o Newman.

Exemplo com uma coleção do Postman

O seguinte exemplo usa uma coleção do Postman para get o valor de uma determinada moeda e exibe-o no painel Saída do Studio.

Neste exemplo, nós gravamos um script de teste para iterar pelos dados recebidos. Declaramos uma variável global diretamente no script, mas isso também pode ser feito com o fragmento Set a global variable no Postman; leia mais sobre isso aqui.



O argumento In passou o valor da moeda EUR para um argumento Out, visível na biblioteca, no painel Propriedades > Entrada > Coleção. O argumento Out fica visível no mesmo painel, na seção Saída.


Os argumentos Out das atividades são mapeados para uma variável e seu valor é gravado no painel Saída.

Você pode usar uma atividade If para validar o valor retornado da variável. Neste exemplo, validamos que o valor é retornado e, em seguida, o escrevemos para o painel Saída.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.