O que é WSDL?
WSDL ( Web Services Description Language ) é um arquivo baseado em XML que basicamente informa ao aplicativo cliente o que o serviço da web faz. O arquivo WSDL é usado para descrever em poucas palavras o que o serviço da web faz e fornece ao cliente todas as informações necessárias para se conectar ao serviço da web e usar todas as funcionalidades fornecidas pelo serviço da web.
Neste tutorial, vamos nos concentrar no último ponto que é a parte mais importante dos serviços da web, e que é o WSDL ou a linguagem de descrição dos serviços da web.
O arquivo WSDL é usado para descrever em poucas palavras o que o serviço da web faz e fornece ao cliente todas as informações necessárias para se conectar ao serviço da web e usar todas as funcionalidades fornecidas pelo serviço da web.
Neste tutorial, você aprenderá-
- Estrutura de um documento WSDL
- Elementos WSDL
- Por que WSDL
- Parte da mensagem WSDL
- Ligação de tipo de porta
- Criação de arquivo WSDL
- Publicando o exemplo de serviço da Web
Estrutura de um documento WSDL
Um documento WSDL é usado para descrever um serviço da web. Essa descrição é necessária para que os aplicativos clientes possam entender o que o serviço da web realmente faz.
- O arquivo WSDL contém a localização do serviço da web e
- Os métodos que são expostos pelo serviço da web.
O próprio arquivo WSDL pode parecer muito complexo para qualquer usuário, mas contém todas as informações necessárias que qualquer aplicativo cliente exigiria para usar o serviço da web relevante.
Abaixo está a estrutura geral de um arquivo WSDL
- Definição
- TargetNamespace
- Tipos de dados
- Mensagens
- Porttype
- Bindings
- serviço
Uma coisa importante a se observar aqui é que a definição de mensagens, que é passada pelo protocolo SOAP, é realmente definida no documento WSDL.
O documento WSDL realmente informa a um aplicativo cliente quais são os tipos de mensagens SOAP enviadas e aceitas pelo serviço da web.
Em outras palavras, o WSDL é como um cartão postal que contém o endereço de um determinado local. O endereço fornece os detalhes da pessoa que entregou o cartão postal. Assim, da mesma forma, o arquivo WSDL é o cartão postal, que contém o endereço do serviço web que pode entregar todas as funcionalidades que o cliente deseja.
… … … … …
Abaixo está um diagrama da estrutura de um arquivo WSDL
Elementos WSDL
O arquivo WSDL contém as seguintes partes principais
-
A tag
é usada para definir todos os tipos de dados complexos, que serão usados na mensagem trocada entre o aplicativo cliente e o serviço web. Esse é um aspecto importante do aplicativo cliente, porque se o serviço da Web trabalhar com um tipo de dados complexo, o aplicativo cliente deve saber como processar o tipo de dados complexo. Tipos de dados como float, números e strings são todos tipos de dados simples, mas pode haver tipos de dados estruturados que podem ser fornecidos pelo serviço da web. Por exemplo, pode haver um tipo de dados chamado EmployeeDataType que pode ter 2 elementos chamados "EmployeeName" do tipo string e "EmployeeID" do tipo número ou inteiro. Juntos, eles formam uma estrutura de dados que se torna um tipo de dados complexo.
-
A tag
é usada para definir a mensagem que é trocada entre o aplicativo cliente e o servidor da web. Essas mensagens explicarão as operações de entrada e saída que podem ser executadas pelo serviço da web. Um exemplo de mensagem pode ser uma mensagem que aceita o EmployeeID de um funcionário e a mensagem de saída pode ser o nome do funcionário com base no EmpoyeeID fornecido. -
A tag
é usada para encapsular cada mensagem de entrada e saída em uma operação lógica. Portanto, pode haver uma operação chamada "GetEmployee" que combina a mensagem de entrada de aceitar o EmployeeID de um aplicativo cliente e, em seguida, enviar o EmployeeName como a mensagem de saída. -
A tag
é usada para vincular a operação ao tipo de porta específico. Isso ocorre para que, quando o aplicativo cliente chamar o tipo de porta relevante, ele possa acessar as operações vinculadas a esse tipo de porta. Os tipos de porta são como interfaces. Portanto, se um aplicativo cliente precisar usar um serviço da web, ele precisará usar as informações de ligação para garantir que possa se conectar à interface fornecida por esse serviço da web. -
A tag
é um nome dado ao próprio serviço da web. Inicialmente, quando um aplicativo cliente faz uma chamada para o serviço da web, ele o fará chamando o nome do serviço da web. Por exemplo, um serviço da web pode estar localizado em um endereço como http: //localhost/Guru99/Tutorial.asmx . A etiqueta de serviço terá, na verdade, a URL definida como http: //localhost/Guru99/Tutorial.asmx , que informará ao aplicativo cliente que há um serviço da web disponível neste local.
Por que WSDL
Um serviço da web é um componente importante na construção de aplicativos da web modernos. Seu principal objetivo é permitir que vários aplicativos desenvolvidos em várias linguagens de programação conversem entre si. Por exemplo, podemos ter um aplicativo da web .Net se comunicando com um aplicativo Java por meio de um serviço da web.
Um serviço da web tem os seguintes recursos principais
- Ele é construído usando a linguagem de programação XML. Quase todas as tecnologias modernas, como .Net e Java, têm comandos correspondentes que têm a capacidade de trabalhar com XML. Portanto, o XML foi considerado a linguagem mais adequada para a construção de serviços da web.
- Os serviços da Web se comunicam por HTTP. HTTP é um protocolo usado por todos os aplicativos baseados na web. Portanto, fazia sentido garantir que os serviços da Web também pudessem funcionar no protocolo HTTP.
- Os serviços da Web estão em conformidade com uma especificação de idioma particular. Esta especificação é definida pelo W3C, que é o órgão regulador de todos os padrões da web.
- Os serviços da web têm uma linguagem de descrição conhecida como WSDL, que é usada para descrever o serviço da web.
O arquivo WSDL é escrito em XML antigo simples. A razão de estar em XML é para que o arquivo possa ser lido por qualquer linguagem de programação.
Portanto, se o aplicativo cliente fosse escrito em .Net, ele entenderia o arquivo XML. Da mesma forma, se o aplicativo cliente fosse escrito na linguagem de programação Java, também seria capaz de interpretar o arquivo WSDL.
O arquivo WSDL é o que une tudo. No diagrama acima, você pode ver que pode criar um serviço da web na linguagem .Net.
Portanto, é aqui que o serviço é implementado. Se você não tivesse o arquivo WSDL e desejasse que uma classe Java consumisse o serviço da web, precisaria de muito esforço de codificação para conseguir isso.
Mas agora com o arquivo WSDL que está em XML, que pode ser entendido por qualquer linguagem de programação, agora você pode facilmente fazer com que uma classe Java consuma o serviço da web .Net. Conseqüentemente, a quantidade de esforço de codificação é bastante reduzida.
Parte da mensagem WSDL
O WSDL consiste em uma seção chamada "mensagens" que é denotada pelo elemento
Esse elemento é basicamente usado para descrever os dados que são trocados entre o serviço da web e o aplicativo cliente.
Cada serviço da web sempre terá 2 tipos de mensagens,
- Um é para a entrada do serviço da web e o outro é para a saída do serviço da web.
- A entrada é usada para descrever os parâmetros que são aceitos pelo serviço da web. Este é um aspecto importante do aplicativo cliente para que ele conheça os valores a serem enviados como parâmetros ao serviço da web.
- O outro tipo de mensagem é a mensagem de saída que informa quais resultados são fornecidos pelo serviço da web.
Cada mensagem, por sua vez, terá um elemento
Abaixo está um exemplo simples da aparência de uma mensagem para um serviço da web. A funcionalidade do serviço da web é fornecer o nome de um "Tutorial", uma vez que um "ID do tutorial" é enviado como um parâmetro para o serviço da web.
- Como podemos ver, o serviço web possui 2 mensagens, uma para a entrada e outra para a saída.
- A mensagem de entrada é conhecida como TutorialNameRequest, que possui um parâmetro chamado TutorialID. Este parâmetro é do tipo número que é especificado pelo tipo xsd: número
- A mensagem de saída é conhecida como TutorialNameResponse, que possui um parâmetro chamado TutorialName. Este parâmetro é do tipo string que é especificado pelo tipo xsd: string
Ligação de tipo de porta
As portas são usadas em WSDL para definir uma operação completa que é oferecida pelo serviço da web.
No tópico anterior, vimos que nosso serviço da web forneceu 2 mensagens, uma para a entrada chamada "TutorialNameRequest" e outra para a saída chamada "TutorialNameResponse." Juntos, o formulário da mensagem de entrada e saída é conhecido como uma operação completa.
WSDL fornece um elemento chamado
Portanto, em nosso exemplo acima, podemos observar o seguinte:
- O nome do tipo de porta que encapsula a operação é fornecido como "Tutorial_PortType."
- A operação em si recebe o nome de "Tutorial". Portanto, nossa operação fornece basicamente um TutorialName se o TutorialID for fornecido como um parâmetro de entrada.
- A seguir estão nossas 2 mensagens, uma para a entrada e outra para a saída que forma nossa operação
Além do elemento
- O exemplo acima mostra que a vinculação consiste em um nome de vinculação que, em nosso caso, é fornecido como "TutorialSoapBinding". A vinculação em termos simples é a informação que o aplicativo cliente usa para realmente se vincular ao serviço da web. Uma vez que está realmente vinculado ao serviço da web, ele tem a capacidade de chamar as várias operações que são expostas pelo serviço da web.
- A camada de transporte é dada como http: // o que significa que as mensagens que serão transferidas através do protocolo HTTP.
Criação de arquivo WSDL
O arquivo WSDL é criado sempre que um serviço da web é construído em qualquer linguagem de programação.
Como o arquivo WSDL é muito complicado de ser gerado do zero, todos os editores, como Visual Studio para .Net e Eclipse para Java, criam automaticamente o arquivo WSDL.
Abaixo está um exemplo de um arquivo WSDL criado no Visual Studio.
TutorialService
O arquivo WSDL acima parece muito intimidante para qualquer usuário, vamos cobrir as diferentes partes em detalhes nos tutoriais subsequentes, mas por agora, vamos dar uma olhada resumida no que cada seção do arquivo WSDL realmente faz
Publicando o exemplo de serviço da Web
Agora vamos ver um exemplo de como podemos publicar um serviço da web e consumi-lo usando o Visual Studio.
Neste exemplo, criaremos um serviço da web com um WebMethod. Este método aceitará um parâmetro Integer chamado "TutorialID." O método da Web retornará uma string chamada "Serviços da Web".
Em seguida, criaremos um aplicativo baseado em console, que consumirá esse serviço da web e chamará nosso método da web de acordo.
Vejamos as etapas necessárias para realizar este exemplo.
Etapa 1) A primeira etapa é criar seu serviço da web. As etapas detalhadas de como o projeto da web Asp.Net e um serviço da web são criados foram explicadas aqui; Siga as mesmas etapas para criar o projeto e o serviço da web de acordo. A parte principal é inserir o código abaixo no arquivo de serviços da Web.
namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}
Explicação do código:
- Aqui estamos criando um WebMethod chamado "Guru99WebService." Neste método da web, estamos incluindo um parâmetro inteiro que precisa ser passado sempre que este método da web é chamado.
- Em seguida, estamos definindo uma variável chamada "TutorialName" que conterá o valor da string de "Web Services". Este é o valor que será retornado quando o serviço da web for chamado.
Etapa 2) Depois de definir o arquivo de serviços da web, a próxima etapa é criar um projeto de cliente que consumirá este serviço da web.
Vamos criar um aplicativo de console simples que irá chamar este serviço da web, invocar o "Guru99WebService" e, em seguida, exibir a saída do método da web na tela de log do console. Siga as etapas abaixo para criar um aplicativo de console.
Clique com o botão direito do mouse no arquivo de solução do Visual Studio e escolha a opção Adicionar-> Novo projeto
Etapa 3) Nesta etapa,
- Certifique-se de primeiro escolher a opção Visual C # Windows. Em seguida, escolha a opção de criar um aplicativo de console.
- Dê um nome para o seu projeto que, em nosso caso, foi dado como "DemoApplication".
Depois de clicar no botão OK na tela acima, você poderá ver o projeto no Gerenciador de Soluções no Visual Studio.
Etapa 4) Nesta etapa, você configurará o aplicativo DemoApplication Console como o projeto de inicialização. Isso é feito para garantir que este aplicativo seja iniciado primeiro, quando todo o projeto do Visual Studio for executado. Este aplicativo de console, por sua vez, chamará o serviço da web que será iniciado automaticamente pelo Visual Studio.
Para concluir esta etapa, clique com o botão direito do mouse no projeto DemoApplication e escolha a opção "Definir como projeto de inicialização".
Etapa 5) A próxima etapa é adicionar a referência de serviço de nosso "Guru99Webservice" ao nosso aplicativo de console. Isso é feito para que o DemoApplication possa referenciar o serviço da web e todos os métodos da web no serviço da web.
Para fazer isso, clique com o botão direito do mouse no arquivo de projeto DemoApplication e escolha a opção de menu Adicionar-> Referência de Serviço.
Etapa 6) Nesta etapa, forneceremos os diferentes valores que são necessários para adicionar nossa referência de serviço
- Em primeiro lugar, precisamos escolher nossa opção de descoberta. Esta opção selecionará automaticamente o arquivo WSDL para nosso serviço da web TutorialService.
- Em seguida, devemos fornecer um nome para nossa referência de serviço. Em nosso caso, estamos dando a ele o nome de Guru99Webservice.
- Em seguida, precisamos expandir a opção TutorialService.asmx para que possamos ver o método 'GetTutorialService' no lado direito. Aqui, TutorialService.asmx é o nome de nosso arquivo Visual Studio .Net que contém o código para nosso serviço da web.
- Em seguida, veremos nosso método da Web que tínhamos em nosso serviço da Web conhecido como "GetTutorialService"
Quando clicamos no botão 'OK', todos os códigos necessários para acessar este serviço da web serão adicionados ao nosso aplicativo DemoApplication Console, conforme mostrado abaixo.
A captura de tela mostra que o "Guru99Webservice" foi adicionado com sucesso ao nosso aplicativo de console.
Etapa 7) A próxima etapa é adicionar o código ao nosso aplicativo de console para acessar o método da web em nosso serviço da web. Abra o arquivo de código Program.cs que vem automaticamente com o aplicativo de console e adicione o código abaixo
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Explicação do código: -
- A primeira parte é escolher o arquivo Program.cs. Este é o arquivo principal criado pelo Visual Studio quando um aplicativo de console é criado. Este arquivo é executado quando o aplicativo de console (em nosso aplicativo de demonstração de caso) é executado.
- Em seguida, criamos uma variável chamada "cliente" que será definida como uma instância de nossa referência de serviço que foi criada em uma etapa anterior. Em nosso caso, a referência de serviço é 'Guru99Webservice.Guru99WebserviveSoapClient ()'
- Em seguida, estamos chamando nosso Webmethod 'GetTutorialService' no serviço web TutorialService. Lembre-se de que nosso método GetTutorialService 'aceita um parâmetro inteiro, portanto, estamos apenas passando um parâmetro inteiro para o método web.
- Esta linha final é apenas para garantir que a tela de log do console permaneça ativa para que possamos ver a saída. Este comando irá apenas esperar por alguma entrada do usuário.
Resultado
Quando todas as etapas acima forem seguidas e o DemoApplication for executado, a saída abaixo será exibida.
Na saída, podemos ver claramente que o DemoApplication chama nosso serviço da Web e que a string retornada pelo serviço da Web é exibida em nosso log do console.
Resumo
- A forma completa de WSDL é a linguagem de descrição de serviços da Web
- Um documento WSDL é um documento usado para descrever um serviço da web. Essa é a chave para qualquer aplicativo cliente saber onde o serviço da web está localizado. Também permite que o aplicativo cliente entenda os métodos disponíveis no serviço da web.
- O arquivo WSDL torna muito fácil para o serviço da web ser implementado em uma linguagem de programação e chamado de uma linguagem de programação diferente.
- O documento WSDL normalmente consiste em uma mensagem. Para cada método da web, existem 2 mensagens, uma é para a entrada e a outra é para a saída. Juntos, eles formam uma operação.
- Os arquivos da Web Services Description Language (significa WSDL) normalmente são criados no editor que é usado para a linguagem de programação correspondente.
- Vimos como podemos consumir um serviço da web no Visual Studio. Isso pode ser feito criando outro projeto, que é um aplicativo de console. Então, adicionando uma referência de serviço, podemos acessar os métodos da web em nosso serviço da web.