[pt-BR] Será que isso é o básico? [parte III] - A API SOAP
Tags: programming, beginners, motivation
Published: 2022-08-31 20:10:09

Fala pessoALL,
Tudo certinho? Espero que sim!
Bom vamos continuar nosso papo sobre uns conceitos básicos que temos trazido? Vamos!
Na [primeira publicação](https://dev.to/eguadorodrigo/sera-que-isso-e-o-basico-parte-i-8pi) falamos um pouco da divisão que tem no universo do desenvolvimento de software. Já na [segunda publicação](https://dev.to/eguadorodrigo/pt-br-sera-que-isso-e-o-basico-parte-ii-1gpk) trouxemos o conceito de APIs, o que são e pra que servem, vimos inclusive que há tipos diferentes de APIs e esse próximo texto vai se aprofundar exatamente nos tipos,então vamos lá!
O SOAP de acordo com a [Wikipédia](https://pt.m.wikipedia.org/wiki/SOAP) é: "um protocolo para troca de informações estruturadas em uma plataforma descentralizada e distribuída." e em tradução livre seria algo como **P**rotocolo de **A**cesso a **O**bjeto **S**imples, que tinha sua representação por meio de arquivos [XML](https://pt.m.wikipedia.org/wiki/XML) que eram dispostos em servidores web, inicialmente de forma privada, mas com o advento da Internet este protocolo se popularizou bastante, foi tão disseminado que até hoje se encontra em servidores mundo afora, seja em ambiente produtivo ou em simuladores de APIs...

![Página de fundo branco com código estruturado XML na cor vermelho e azul ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3p38auydg7aplmdu6kpg.jpeg)

Exemplo de uma página XML que mostra a chamada de uma requisição de nome **GetCDLStat** que repassa ao servidor os parâmetros  (**year, fips e CSV**) e o **GetCDLStatResponse** que é a resposta da requisição e dá como retorno uma URL que entrega um arquivo .CSV.

E como é que essa comunicação era feita, Rodrigo? Bom, a imagem abaixo tenta esboçar esse cenário:

![Imagem que mostra por meio de figuras geométricas, linhas, setas e ícones, uma dada comunicação no padrão cliente-servidor do lado esquerdo há o cliente, acima o registry (internet/intranet) e do lado direito o servidor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oz3cldavlb8yv9vwyno9.png)
No lado esquerdo temos um dado cliente o **Service Requester**  (lembrando que cliente é quem pede algo, que solicita alguma informação, quem requisita alguma coisa). Neste exemplo temos o **Service Broker**, que não vamos nos aprofundar, mas está aí para fazer uma especie de validação do que está sendo requisitado e se a requisição irá encontrar seu correspondente num dado servidor. Em seguida, há o **Service Provider** que é o nosso servidor da informação, o provedor da informação, quem cede o dado ao requisitante, ou seja, ao cliente.
Notem que entre o cliente e o servidor há o SOAP, mas que há outro carinha aí no meio da jogada, o famigerado **WSDL**!
Segundo a [IBM](https://www.ibm.com/docs/pt-br/integration-bus/10.0?topic=services-what-is-wsdl): "WSDL é uma notação XML para descrever um serviço da web. Uma definição WSDL indica a um cliente como compor uma solicitação de serviço da web e descreve a interface que é fornecida pelo provedor de serviços da web."
Trocando em miúdos, é uma representação que te mostra quais informações estão disponíveis em um dado servidor e o que é preciso - pra você como cliente - enviar como informação, para obter do servidor uma resposta satisfatória à tua requisição. É o que chamamos hoje em dia de contrato.

Bom galera, espero que tenham curtido esse conteúdo hein?
E você, já mexeu com WSDL, com SOAP, conta aqui pra gente ! 
Ah! Conta também o que tu acharia interessante ver por aqui, me ajuda a criar esse conteúdo que é nosso, até o próximo protocolo pessoal,valeu demais!