Web Services em Python
Web Services em Python
Descrição
Propósito
Preparação
Objetivos
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 1/69
11/04/2024, 16:01 Web services em Python
Módulo 1
Módulo 2
Módulo 3
Módulo 4
meeting_room
Introdução
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 2/69
11/04/2024, 16:01 Web services em Python
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 3/69
11/04/2024, 16:01 Web services em Python
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 4/69
11/04/2024, 16:01 Web services em Python
Web services
No início da computação distribuída, com as aplicações distribuídas, a
comunicação entre cliente e servidor era restrita a uma rede interna,
ficando o servidor responsável por efetuar todo o processamento.
Middlewares
Middleware é a infraestrutura de software localizada entre o sistema
operacional e uma aplicação distribuída. Também pode ser considerado
como middleware a camada de software entre o front-end e o back-end de
um sistema.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 5/69
11/04/2024, 16:01 Web services em Python
Provedor de serviços
Consumidor de serviços
Registro de serviços
WSDL e UDDI
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 6/69
11/04/2024, 16:01 Web services em Python
WSDL
UDDI
SOAP e REST
Inicialmente, no contexto da computação distribuída, eram utilizadas
tecnologias como RMI, DCOM e CORBA para a integração de aplicações.
Nesse cenário, tais tecnologias obtiveram sucesso quando aplicadas
em ambientes de rede locais e homogêneos. Posteriormente, já no
ambiente heterogêneo da Internet, outras soluções foram aplicadas por
meio da construção de aplicações web escritas em linguagens como
Java (JSP), ASP e PHP. Essas aplicações, em termos de integração com
outras aplicações, faziam uso de XML.
Dica
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 7/69
11/04/2024, 16:01 Web services em Python
Modelo SOAP
Neste vídeo, vamos conhecer os web services e sua arquitetura.
Comunicação em SOAP
Web services que fazem uso do protocolo SOAP podem utilizar dois
modelos distintos de comunicação:
RPC
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 8/69
11/04/2024, 16:01 Web services em Python
Document
Formato de mensagem
check Envelope
check Header
check Body
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 9/69
11/04/2024, 16:01 Web services em Python
XML
content_copy
1 <SOAP-ENV:envelope>
2 <SOAP-ENV:header>
3 </SOAP-ENV:header>
4 <SOAP-ENV:body>
5 <SOAP-ENV:fault>
6 </SOAP-ENV:fault>
XML
content_copy
1 <?xml version="1.0"?>
2 <soap:Envelope xmlns:soap="http://www.w3.org/2003/
3 <soap:Header>
4 </soap:Header>
5 <soap:Body>
6 <GetModulosTema>
XML
content_copy
1 <?xml version="1.0"?>
2 <soap:Envelope
3 xmlns:soap="http://www.w3.org/2003/05/soap-
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 10/69
11/04/2024, 16:01 Web services em Python
4 soap:encodingStyle="http://www.w3.org/2003/
5 <soap:Body>
6 <GetModulosTemaResponse>
7 <Modulos>
8 <Modulo>
9 <Nome>SOAP e REST</Nome>
10 </Modulo>
11 <Modulo>
12 <Nome>Utilização de SOAP XML em JA
13 </Modulo>
14 M d l
Modelo REST
Neste vídeo, você verá mais detalhes sobre o protocolo SOAP e sua
aplicação.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 11/69
11/04/2024, 16:01 Web services em Python
Protocolo HTTP
Atenção!
Terminal
content_copy
1 http://www.dominio.com.br/tema/GetModulosTema/{nome-
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 12/69
11/04/2024, 16:01 Web services em Python
Uma vez que os web services REST são baseados no protocolo HTTP, a
estrutura dos recursos REST, como vimos, provém justamente dos
métodos e códigos de retorno HTTP. Isso, em termos práticos, significa
dizer que devemos usar os diferentes métodos HTTP de acordo com as
operações para manipulação de dados dos recursos que desejamos
fazer.
Exemplo
check GET
check POST
check PUT
check DELETE
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 13/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
1 http://www.dominio.com.br/tema/GetModulosTema/Webser
JSON
content_copy
1 {
2 "Modulos": [
3 {"Nome": "SOAP e REST"},
4 {"Nome": "Utilização de SOAP XML em JAVA"},
5 {"Nome": "Utilização de REST JSON em JAVA"}
6 ]
Application/xml;
Application/json;
Text/plain;
Text/xml;
Text/html.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 14/69
11/04/2024, 16:01 Web services em Python
video_library
SOAP UI
Neste vídeo, demonstramos como utilizar a ferramenta SOAP UI para
testar um web service do tipo SOAP e a outro do tipo REST, observando
a diferença entre eles.
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 15/69
11/04/2024, 16:01 Web services em Python
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 16/69
11/04/2024, 16:01 Web services em Python
video_library
Django e Spyne
Neste vídeo, apresentaremos protocolo SOAP com Python estruturando
a aplicação.
Estruturando a aplicação
Nossa aplicação será um projeto web baseado no Django, que será
responsável por hospedar todos os elementos que serão
disponibilizados via protocolo HTTP. Nessa aplicação, definiremos os
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 18/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 19/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
1 cd /
2 cd DjangoApps
3 django-admin startproject DisciplinasApp
Terminal
content_copy
1 cd DisciplinasApp
2 python manage.py runserver 8080
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 20/69
11/04/2024, 16:01 Web services em Python
Acesso ao aplicativo DisciplinasApp por meio do navegador
Terminal
content_copy
1 - DisciplinasApp
2 - db.sqlite3
3 - manage.py
4 - DisciplinasApp
5 - __pycache__
6 - __init.py__
7 - asgi.py
8 - settings.py
9 - urls.py
10 - wsgi.py
video_library
Clientes Zeep para SOAP
Neste vídeo, veremos os principais aspectos em relação ao cliente
SOAP.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 21/69
11/04/2024, 16:01 Web services em Python
Provedor SOAP
Com o aplicativo criado, vamos interromper sua execução, com o uso de
CTRL+C no console do Miniconda, e adicionar o arquivo repositorio.py
no diretório DisciplinasApp interno, o mesmo de urls.py, utilizando o
código da listagem seguinte.
Python
content_copy
1 class DisciplinasRepo:
2 def __init__(self):
3 self.repo = {
4 "Webservices":
5 ["Conceitos de Web services",
6 "Utilizando SOAP em Java",
7 "Utilizando REST em Java"],
8 "Programação Servidor com Java":
9 ["Webserver Tomcat",
10 "App Server GlassFish",
11 "Servlet e JSP"],
12 "JPA e JEE":
13 ["Tecnologia JPA",
14 "Enterprise Java Beans"
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 22/69
11/04/2024, 16:01 Web services em Python
12 class DisciplinasService(ServiceBase):
13 @rpc(_returns=Iterable(Unicode))
14 d f tT ( t )
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 23/69
11/04/2024, 16:01 Web services em Python
Cliente SOAP
Terminal
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 24/69
11/04/2024, 16:01 Web services em Python
Execução do cliente de teste em modo texto.
Como nosso passo final, vamos criar um sistema web padrão, com
acesso ao nosso serviço via cliente zeep, aproveitando a estrutura
fornecida pelo Django.
Python
content_copy
1 TEMPLATES = [
2 {
3 'BACKEND': 'django.template.backends.djan
4 'DIRS': ['templates'],
5 'APP_DIRS': True,
6 'OPTIONS': {
7 'context_processors': [
8 'django.template.context_processo
9 'django.template.context_processo
10 'django.contrib.auth.context_proc
11 'django.contrib.messages.context_
12 ],
13 },
14 }
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 25/69
11/04/2024, 16:01 Web services em Python
3
def index(request):
4
cliente = Client('http://localhost:8080/discipl
5
temas = cliente.service.getTemas()
6
context = {
7
'temas': temas
8
}
9
return render(request, 'index.html', context=co
10
HTML
content_copy
1 <!DOCTYPE html>
2 <html lang="pt-br">
3 <body>
4 <h1>Temas</h1>
5 <ul>
6 {% for t in temas %}
7 <li>{{ t }}</li>
8 {% endfor %}
9 </ul>
10 </body>
11 </html>
O último passo será uma nova alteração em urls.py, para definir a nova
rota web, apontando para a função index.
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 26/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 27/69
11/04/2024, 16:01 Web services em Python
GET
Este modo retorna o formulário para a seleção do tema.
POST
Este modo retorna a lista de módulos a partir do tema selecionado.
HTML
content_copy
1 <!DOCTYPE html>
2 <html lang="pt-br">
3 <body>
4 <h1>Selecione o Tema</h1>
5 <form method="POST">
6 {% csrf_token %}
7 {{ form }}
8 <input type="submit" value="Exibir">
9 </form>
10 </body>
11 </html>
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 28/69
11/04/2024, 16:01 Web services em Python
HTML
content_copy
1 <!DOCTYPE html>
2 <html lang="pt-br">
3 <body>
4 <h1>Módulos de {{ tema }}</h1>
5 <ul>
6 {% for m in modulos %}
7 <li>{{ m }}</li>
8 {% endfor %}
9 </ul>
10 </body></html>
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 29/69
11/04/2024, 16:01 Web services em Python
11 ]
video_library
Web service SOAP com Python
Neste vídeo, assista ao exemplo da construção de um provedor SOAP
com Django e Spyne, seguido de uma linha de criação de um cliente de
linha de comando com o zeep e a WSDL do serviço.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 30/69
11/04/2024, 16:01 Web services em Python
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 31/69
11/04/2024, 16:01 Web services em Python
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 32/69
11/04/2024, 16:01 Web services em Python
Atenção!
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 33/69
11/04/2024, 16:01 Web services em Python
Na janela que será aberta, basta digitar o nome do banco, que no caso é
curso, aceitando o usuário postgres como owner, e clicar em Save.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 34/69
11/04/2024, 16:01 Web services em Python
Ativando a opção Query Tool no PgAdmin.
SQL
content_copy
SQL
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 35/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 36/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 37/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
video_library
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 38/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 39/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
Comentário
Segundo o padrão REST, o modo POST está relacionado à inclusão,
como pode ser observado nos métodos add_tema e add_modulo, com a
obtenção dos dados por meio do método get_json de request, geração
da instância de entidade necessária, e chamada para o método incluir
do DAO correto. Ao final, temos um retorno vazio, com código 204,
indicando o sucesso da inclusão, e no caso específico do módulo, a rota
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 40/69
11/04/2024, 16:01 Web services em Python
Terminal
content_copy
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 41/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 42/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 43/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 44/69
11/04/2024, 16:01 Web services em Python
Execução do novo projeto Django no Miniconda.
video_library
Bibliotecas requests e JSON
Neste vídeo, apresentaremos os principais assuntos em relação a
criação do cliente REST.
Recapitulando conceitos
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 45/69
11/04/2024, 16:01 Web services em Python
Web services
Software
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 46/69
11/04/2024, 16:01 Web services em Python
check
check Outros
API
Definição
O provedor da API descreve exatamente qual funcionalidade a API
oferecerá.
Disponibilidade
O provedor da API descreve quando e como a funcionalidade estará
disponível.
Restrições
O provedor da API pode estabelecer restrições técnicas, legais ou
comerciais, como limites de utilização, entre outras.
Responsabilidades
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 47/69
11/04/2024, 16:01 Web services em Python
Unindo conceitos
Os três conceitos apresentados são de suma importância para
abordarmos o uso de web services no mundo real, uma vez que se
tratam de conceitos intrinsecamente relacionados, como podemos
perceber nas suas respectivas definições. Logo, é comum, no dia a dia,
confundirmos os conceitos de web services e APIs, por exemplo. Frente
a isso, cabe destacar algumas de suas diferenças:
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 48/69
11/04/2024, 16:01 Web services em Python
Atenção!
Nesse caso, poderíamos consumir o web service desenvolvido (em
SOAP ou REST) tanto a partir do "server side" – carregando as
informações no carregamento da página – quanto a partir do "client
side" – a partir de formulários de pesquisa e filtro de resultados
carregando informações através de AJAX.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 49/69
11/04/2024, 16:01 Web services em Python
arrow_forward Compartilhamento
arrow_forward Escalabilidade
arrow_forward Disponibilidade
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 50/69
11/04/2024, 16:01 Web services em Python
APIs de pagamento
APIs de localização
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 51/69
11/04/2024, 16:01 Web services em Python
Outros exemplos
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 52/69
11/04/2024, 16:01 Web services em Python
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 53/69
11/04/2024, 16:01 Web services em Python
Comentário
Com relação ao conceito de API, pode ser definido como a exposição de
um conjunto de funcionalidades de um determinado sistema para
ferramentas externas. Um bom exemplo é a API de um sistema
operacional, que viabiliza a programação com múltiplas threads em
programas criados na linguagem C, bem como a automatização do uso
de Word e Excel, ambos produtos da Microsoft, com base em Java
Script.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 55/69
11/04/2024, 16:01 Web services em Python
Aumentando a produtividade
Python
content_copy
1 def index(request):
2 clienteREST = Cliente()
3 temas = clienteREST.buscar_temas()
4 context = {
5 'temas': [x['tema_nome'] for x in temas]
6 }
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 56/69
11/04/2024, 16:01 Web services em Python
Agora vamos construir uma API no estilo REST, com base no Flask,
semelhante aos exemplos que foram implementados anteriormente,
onde a inversão de controle é utilizada na definição de rotas, por meio
de anotações, também conhecidas como decorações. Como as
ferramentas já foram instaladas em passos anteriores, vamos criar o
diretório tarefasAPI, e iniciar a codificação de nosso projeto
imediatamente, com todos os arquivos sendo gerados nesse diretório.
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 57/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
Já podemos definir nossa API do tipo REST, com base no Flask, criando
o arquivo tarefasAPI.py, onde será utilizado o código da listagem
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 58/69
11/04/2024, 16:01 Web services em Python
seguinte.
Python
content_copy
Para incluir uma tarefa, por meio do método add_tarefa, que responde
no modo POST, obtemos a informação via get_json, transformamos em
um objeto do tipo Tarefa, e acionamos o método de inclusão do DAO.
Atenção!
Com relação ao método del_tarefa, que utiliza o modo DELETE, a
exclusão da tarefa ocorre com base no código que é fornecido por meio
da rota parametrizada. Em ambos os casos respondemos ao solicitante
com o código 204 do protocolo HTTP, indicando sucesso.
Terminal
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 59/69
11/04/2024, 16:01 Web services em Python
JSON
content_copy
1 {
2 "codigo": "A002",
3 "titulo": "Geração de Gráficos",
4 "descricao": "Criar gráficos estatísticos com
5 }
6
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 60/69
11/04/2024, 16:01 Web services em Python
Interoperabilidade
Em meados da década de 1990, com a expansão dos sistemas
computacionais, começaram a ser oferecidas diferentes formas
padronizadas para armazenar, recuperar e processar dados. Com base
em conversores de dados, os arquivos de um determinado fabricante
eram convertidos para um determinado formato, de forma que outro
fabricante pudesse ler. Esse processo surgiu da necessidade de
compartilhamento de dados entre aplicativos distintos.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 61/69
11/04/2024, 16:01 Web services em Python
Comentário
Bibliotecas como Axios, no ambiente NodeJS, e Retrofit, para a
plataforma Java, permitem o uso de todos os métodos do HTTP de
forma simplificada. No ambiente do Python, as funções de requests
efetuam o acesso via HTTP, enquanto a biblioteca json permite efetuar o
mapeamento dos dados no formato JSON para listas de dicionários.
Python
content_copy
1 import requests
2 import json
3
4 class Tarefa:
5 def __init__(self,dados):
6 self.codigo = dados['codigo']
7 self.titulo = dados['titulo']
8 self.descricao = dados['descricao']
9 def json(self):
10 return {'codigo': self.codigo,
11 'titulo': self.titulo,
12 'descricao': self.descricao}
13
14 class ClienteTarefa:
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 62/69
11/04/2024, 16:01 Web services em Python
obterTarefas
Neste método, efetuamos uma requisição GET para o endereço de base,
recebendo os dados na forma de uma lista de dicionários, e
transformamos o conteúdo recebido em uma lista de objetos do tipo
Tarefa, a qual é retornada ao final.
incluirTarefa
Já neste método, o mesmo endereço é utilizado, agora no modo POST,
com a passagem de uma tarefa no formato JSON, o que causará a
inclusão da tarefa ao nível do servidor.
excluirTarefa
Neste método, finalmente, o endereço de base é combinado com o
código da tarefa, em uma chamada do tipo DELETE, para que o registro
seja removido no servidor.
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 63/69
11/04/2024, 16:01 Web services em Python
Python
content_copy
1
2 cli = ClienteTarefa()
3 novaTarefa = Tarefa({'codigo':'T001',
4 'titulo':'Apenas Teste',
5 'descricao':'Este e um teste'})
6 cli.incluirTarefa(novaTarefa)
Python
content_copy
1 cli = ClienteTarefa()
2 cli.excluirTarefa('T001')
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 64/69
11/04/2024, 16:01 Web services em Python
video_library
Criação de API REST e cliente com
Python
Neste vídeo, veja a construção de aplicativo cliente-servidor, adotando a
arquitetura REST, com base em Flask, requests e biblioteca JSON.
Questão 1
A interoperabilidade.
B inversão de controle.
C polimorfismo.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 65/69
11/04/2024, 16:01 Web services em Python
D sobrecarga.
E injeção de dependência.
Questão 2
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 66/69
11/04/2024, 16:01 Web services em Python
Considerações finais
Ao longo deste conteúdo, descrevemos os conceitos teóricos relativos
aos web services e, especificamente, ao protocolo SOAP e à arquitetura
REST. Além disso, esses conceitos foram aplicados, de forma prática, na
construção de aplicações provedoras e consumidoras (clientes) de
serviços nas tecnologias em questão, permitindo, assim, ao aluno
empregar o conhecimento adquirido.
headset
Podcast
Ouça agora sobre a importância do uso de web services para a troca de
dados entre as aplicações.
Explore +
Pesquise os diversos padrões definidos pela W3C, incluindo definições
arquiteturais para Web services SOAP (WS-*) no site da W3C.
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 67/69
11/04/2024, 16:01 Web services em Python
Referências
BLOKDYK, G. SOAP Simple Object Access Protocol - The Ultimate Step-
By-Step Guide. Australia: 5StarCooks, 2018.
W3C. W3C working group note 11. W3C ‒ Web services Architecture.
Publicado em: fev. 2014. Consultado na Internet em: 10 jan. 2023.
Download material
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 68/69
11/04/2024, 16:01 Web services em Python
Relatar problema
https://stecine.azureedge.net/repositorio/00212ti/07399/index.html?brand=estacio# 69/69