web das coisas – wot software: apis para iot prof. joão ... · put: solicita que o objeto...
TRANSCRIPT
![Page 1: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/1.jpg)
Web das Coisas – WoT
Software: APIs para IoT
Prof. João Bosco Teixeira Junior
![Page 2: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/2.jpg)
WoT
● Um novo paradigma para desenvolvimento de aplicações inspirado na ideia do IOT;
● Utiliza protocolos e padrões amplamente aceitos na internet como HTTP e URI;
● O objetivo é fazer com que a internet também possa englobar os objetos do dia-a-dia (geladeira, ar-condicionado, tv, carro, etc.)
Fonte: http://www.nce.ufrj.br/labnet/pesquisa/cidadesinteligentes/minicurso-wot-final.pdf
![Page 3: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/3.jpg)
WoT - Protocolos
● HTTP● Além de transportar os dados, também é usado para
manipular os objetos através dos métodos HTTP tais como GET, POST, PUT e DELETE;
● Através destes métodos é possível expor as funcionalidades de um dado objeto na internet;
● URI (Uniform Resource Identifier)● Fornecem endereços únicos e globais para
identificação dos recursos;● REST
● Estilo arquitetural para desenvolvimento de aplicações distribuídas ROA (Resource Oriented Architeture);
![Page 4: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/4.jpg)
HTTP
● Hypertext Transfer Protocol● Implementa o serviço web arquitetura TCP/IP;● Baseado no modelo Cliente-Servidor;● Utiliza os serviços de transporte orientado a
conexão na porta 80/TCP;● Envio e recebimento de mensagens;
![Page 5: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/5.jpg)
HTTP: Teste
# telnet www.terra.com.br 80Connected to www.terra.com.br.Escape character is '^]'.GET /index.html HTTP/1.1host: www.terra.com.brUser-Agent: Mozilla/4.0
HTTP/1.1 200 OKServer: nginxDate: Thu, 07 Aug 2014 15:25:31 GMTContent-Type: text/html...Connection: keep-alive
C:
S:
DIGITE
Digite <enter>
![Page 6: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/6.jpg)
HTTP: Sessão
● Uma sequência de transações de requisição resposta usando a mesma conexão TCP;
● O cliente inicia a comunicação estabelecendo uma conexão TCP para uma porta do servidor, por omissão a porta 80;
● O servidor escutando naquele IP e naquela porta, retorna com “HTTP/1.1 200 OK”, juntamente com o resultado da requisição ou erro informado;
![Page 7: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/7.jpg)
HTTP: URI
● Em TI, um Identificador Uniforme de Recursos (URI) - Uniform Resource Identifier (em inglês) é uma cadeia de carateres compacta usada para identificar ou denominar um recurso na Internet (wikipedia).<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
http://www.boscojr.com/protcomseg/form.php?qualquer=algo#Cap1
![Page 8: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/8.jpg)
HTTP: Métodos
● Também chamados de verbos● Usados para indicar a ação desejada sob o
recurso● O Recurso é indicado pela URI● Principais métodos utilizados
● HTTP 1.0 → GET, POST e HEAD
● HTTP 1.1 → OPTIONS, PUT, DELETE, TRACE and CONNECT
![Page 9: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/9.jpg)
HTTP: Métodos
● GET: Usado para solicitar um recurso do servidor;● HEAD: É idêntico ao GET mas só vem o cabeçalho da resposta a requisição;● POST: O método post é usado para solicitar ao servidor o processamento de
informações enviadas no corpo da requisição. É maneira padrão usada para processar formulários web;
● PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe ele é criado, se existe ele é modificado.
● DELETE: Pode ser usado para remover um recurso específico.● TRACE: Ecoa o pedido recebido de modo que o cliente pode ver as
mudanças ou adições (se houver) foram feitas por servidores intermediários.● OPTIONS: Retorna os métodos http que o servidor suporta para determinada
URL. Isso pode ser usada para checar a funcionalidade do servidor. ● CONNECT: Converte o pedido de conexão em um túnel TCP/IP transparente,
geralmente para facilitar a comunicação criptografada com SSL (HTTPS) através de um proxy HTTP não criptografado.
● PATCH: Aplica modificações parciais para um determinado recurso.● Um servidor web mínimo deve ter pelo menos os métodos GET e HEAD
![Page 10: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/10.jpg)
HTTP: GET x POST
● É possível usar o método GET para enviar dados de formulários do servidor, porém não é aconselhável, pois os dados serão passados na URL, e podem ser facilmente reproduzidos numa tentiva de fraude no sistema. O método correto para envio do formulário é o metodo POST.
● Entrada no html para o método GET:
● <FORM action=form.php method=GET>● Entrada no html para o método POST:
● <FORM action=form.php method=POST>● Exemplos:
● : www.boscojr.com/protcomseg/form.php
![Page 11: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/11.jpg)
HTTP: Códigos de Retorno
● 200 OK● 400 Bad Request● 401 Unauthorized● 403 Forbidden● 404 Not Found● 405 Method Not Allowed● 500 Internal Server Error● 503 Service Unavailable
![Page 12: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/12.jpg)
Fonte: http://www.restapitutorial.com/httpstatuscodes.html
![Page 13: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/13.jpg)
Comunicação “S2S”
![Page 14: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/14.jpg)
API - Aplication Programing Interface
é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.
“How to design a good API and why it matters” Joshua Block - Google
![Page 15: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/15.jpg)
API – Comunicação “S2S”
● As APIs permitem que software fale com software. Para fornecer um serviço o “elemento de software” deve possuir uma interface de programação de aplicativo ou API.
● O Sistema operacional tem uma API (SPI)● Muitos Protocolos de Aplicação fazem uso de
uma API.
![Page 16: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/16.jpg)
Exemplo API TTS google
● TTS: Text to Speak (Texto para fala)● curl 'http://translate.google.com/translate_tts?
ie=UTF-8&tl=pt&q=Tecnologias%20Inovadoras&tl=en&client=t' -H 'Referer: http://translate.google.com/' -H 'User-Agent: stagefright/1.2 (Linux;Android 5.0)' > google_tts.mp3
![Page 17: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/17.jpg)
Características de uma boa API● Fácil de Aprender e usar, mesmo sem
documentação;● Fácil leitura e manutenção de código que a
usa;● Fácil de estender;● Apropriada a para o público alvo;
![Page 18: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/18.jpg)
Componentes de uma API
● Funções● Parâmetros● Retorno● Status
![Page 19: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/19.jpg)
O grandes “players” da internet possuem APIs● Google● Facebook● Ebay● Twiter● Amazon● Youtube
![Page 20: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/20.jpg)
API para APIs - Temboo
● Biblioteca de Processos de Programação● Virtualiza os uso das APIs dos principais
players de internet.● Gera códigos que podem ser colados direto na
aplicação.● Conceito: Coreografia (Service choreography)
● Uma forma de composição de serviço na qual um protocolo de interação entre diversos serviços é definido de uma perspectiva global.
![Page 21: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/21.jpg)
API para APIs - Temboo
MeuSoftware
API do Player 1
.
.
.
MeuSoftware
.
.
.
TEMBOO
COREOGRAFIA
API do Player 2
API do Player n
API do Player 1
API do Player 2
API do Player n
![Page 22: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/22.jpg)
Temboo
Hora da Prática(caderno de práticas: Pratica 1)
Atualizando uma planilha no Google Drive
![Page 23: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/23.jpg)
Aplicações RESTful e Arquitetura Orientada Recursos (ROA)
![Page 24: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/24.jpg)
Midleware para Desenv. de aplicações distribuídas● RPC, RMI, CORBA● SOAP e WSDL● REST● CoAP
Paradigmas para WoT
![Page 25: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/25.jpg)
REST
● REST – Representative State Transfer;● Transferência de Estado Representativo;● Definido por Roy T. Fielding em sua tese de
PhD;● Estabelece um conjunto de princípios para
aplicações web distribuídas.● Diz-se RESTful as aplicações que seguem
esses princípios
![Page 26: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/26.jpg)
Princípios de REST
● A interface da aplicação deve ser uniforme;
● Stateless: Uma requisição não depende de outra anterior, Toda informação necessária ao processamento deve está na própria requisição;
● Cacheable: O resultado das requisições podem ser armazenadas em cache;
● Client-Server: A comunicação deve ser cliente-servidor;
● Layered System (Camadas): O cliente não deve enxergar além das camadas adjacentes
● Code-on-Denand: A aplicação pode opcionalmente gerar código para que o cliente execute. Ex: Javascript;
Fonte: http://whatisrest.com/rest_constraints/layered_system_profile
![Page 27: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/27.jpg)
Interface Uniforme ou API Uniforme
● Definição de uma interface entre clientes e servidores. Desacopla os diferentes elementos da arquitetura. Princípios para uma interface uniforme:
● Baseada em recursos: Recursos são identificados individualmente através de URIs. Os recursos são separados de suas representações, que são enviadas ao cliente. A representação do recurso pode ser HTML, JSON ou XML.
● Manipulação dos Recursos através de Representações: Quando um cliente tem uma representação de um recurso, incluindo quaisquer metadados anexado, tem informações suficientes para modificar ou excluir o recurso no servidor, desde que tenha permissão para fazê-lo.
● Mensagens auto-descritivas: Cada mensagem inclui informações suficientes para descrever como processar a mensagem. Por exemplo, qual parser para invocar pode ser especificado por um tipo de mídia Internet (anteriormente conhecido como um tipo de MIME). As respostas também indicam explicitamente o seu cache de capacidade.
● Hipermídia como o motor da Estado da Aplicação: Clientes podem passar o seu estado via corpo da mensagem, Cabeçalhos ou URI. Já o servidor pode passar o estado para cliente via corpo da mensagem, códigos de retorno e cabeçalho.
![Page 28: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/28.jpg)
Aplicações RESTful (De uma outra forma)● Todas as coisas deve ter pelo menos um identificador
● Vincule as coisas
● Utilize métodos padronizados
● Recursos com múltiplas representações
● Comunique sem estado
Fonte: http://www.infoq.com/br/articles/rest-introduction
![Page 29: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/29.jpg)
1) Dê a todas as coisas um Identificador● Use URIs para identificar tudo o que precisar
ser identificado, especifique todos os recursos de "alto nível" que seu aplicativo oferece, se eles representam itens individuais, conjuntos de itens, objetos virtuais e físicos, ou resultados de computação.
“Coisas” individuais
Conjuntos de “Coisas”
![Page 30: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/30.jpg)
2) Vincule as coisas
● Use links para referenciar coisas que possam ser identificadas (recursos) sempre que for possível.
● A resposta a uma requisição pode conter links para outros recursos
![Page 31: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/31.jpg)
3) Utilize os métodos padrão● Os clientes para interagir com os seus recursos
devem implementar o protocolo de aplicação padrão (HTTP) corretamente, isto é, utilizar os métodos padrão: GET, PUT, POST DELETE e OPTIONS;
● O cliente em sistema distribuído pode solicitar: Leitura (Consulta), Escrita (Nova entrada), Alteração, Exclusão;
● REST não te diz quais métodos usar, isso depende da aplicação. Se precisar algum método para tratar um recurso use os do HTTP
![Page 32: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/32.jpg)
3) Utilize os métodos padrão
![Page 33: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/33.jpg)
4) Recursos com múltiplas representações● O cliente pode querer escolher a forma que
deseja receber as informações. Ex.:
XML
Vcard (vcf)
![Page 34: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/34.jpg)
5) Comunique sem Estado
● Uma requisição do cliente para o servidor não deve depender de requisições anteriores;
● REST exige que o estado seja transformado no estado do recurso. O estado deve ser transformado em algo que possa ser consultado;
● Ou o estado do recurso é enviado ao cliente e lá deve ser mantido.
![Page 35: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/35.jpg)
REST
![Page 36: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/36.jpg)
Hora da Prática(caderno de práticas: Pratica 2)
Ajustando o Apache para Tratar as URIs
![Page 37: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/37.jpg)
ROA – Arquitetura Orientada a Recursos● URIs deve possuir correspondência com o recurso:
● http://www.fac.br/aluno/pedro
● Endereçabilidade: Todo recurso deve possuir pelo menos um endereço
● Sem estado: Requisições deve ser auto contidas● Representações (JSON, XML, CSV, RSS)
● Cliente -> Servidor: Criação ou modificação● Servidor -> Cliente: Requisição
● Links e conectividade: As representações de um recurso podem fornecer links para outros recursos
● Interface Uniforme
![Page 38: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/38.jpg)
ROA – Interface Uniforme
● GET: Usado para recuperar um recurso● A resposta deve incluir em seu corpo a representação
do recurso● DELETE: Usado para apagar um recurso
● A resposta deve ter o status HTTP correspondente● POST e PUT: Criação de Recursos
● A resposta deve ter o status HTTP correspondente● PUT: Atualização de Recursos
● A resposta deve ter o status HTTP correspondente● OPTIONS: Informa quais métodos o recurso suporta
![Page 39: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/39.jpg)
Desenvolvimento de serviços - RESTful● Passos:
● 1 - Levantamento de requisito● 2 - Identificação de recursos● 3 - Definição de representação de recursos ● 4. Definição de URIs
![Page 40: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/40.jpg)
Exemplo: Sistema de Climatização
Sensor de Temperatura+
Sistema de Refrigeração
Interface IP
![Page 41: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/41.jpg)
Exemplo: Sistema de Climatização● 1 - Levantamento Requisitos
● Incluir um comodo● Conhecer a temperatura do comodo● Ajustar a temperatura do comodo
● 2 - Identificação dos Recursos● Cômodos● Sistema de Refrigeração● Sensor de Temperatura
![Page 42: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/42.jpg)
Exemplo: Sistema de Climatização● 3 – Definição da Representação dos Recursos
● JSON : { “temp”, “valor” } ● JSON : { “Endereço IP” }
– Inclusão de um cômodo (nome do comodo na URI )
● 4 – Definição da URI● Cômodo: /comodo Exemplo
– /quarto , /cozinha , /banheiro, etc...● Temperatura
– /comodo/temperatura– Ex: /cozinha/temperatura
Resultado da requisição
Enviado na requisição de inclusão
![Page 43: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/43.jpg)
Exemplo: Sistema de Climatização
Temperatura
GATEWAY
SistemaDe
Refrigeração
ProtocolosZigbee, blutooth, usb, serial, IR INTERNET
1
2
3
1 – GET /quarto/temperatura (host: www.x.com)2 – 200 OKData: { “temp” , “21” }3 – PUT /quarto/temperatura (host www.x.com)Data: { “temp” : “21” }4 – 200 OK5 – POST /cozinha (host www.x.com)Data: “192.168.0.10”6 – 200 OK
4
56
![Page 44: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/44.jpg)
Formatos para transferencia de recursos● RFC 4627 (JSON)
● Representa estruturas de dados em texto● “ XXX “ - String● [ 1, 2, 3 ] - Lista● { “A” : “B” } - Par: Chave-valor (key-value pair)
● XML (W3C)● CSV
![Page 45: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/45.jpg)
Hora da Prática(caderno de práticas: Pratica 3)
Construindo uma Aplicação RESTful para IoT
![Page 46: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/46.jpg)
Segurança da Web da Coisas● HTTP Auth● SSL● OpenID● OAuth
![Page 47: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/47.jpg)
Conclusões
● Uma boa API pode determinar o sucesso do negócio
● A Web das coisas expande o domínio da internet para objetos do nosso dia a dia.
● HTTP é usado como protocolo base para a Web das Coisas
● REST e ROA são os padrões arquiteturais básicos para web das coisas
● Os objetos expostos na web devem possuir algum nível de segurança
![Page 48: Web das Coisas – WoT Software: APIs para IoT Prof. João ... · PUT: Solicita que o objeto enviado junto a requisição, seja armazenada sob a URI fornecida. Se o recurso não existe](https://reader031.vdocuments.com.br/reader031/viewer/2022022106/5be35f2e09d3f2ad378ba9be/html5/thumbnails/48.jpg)
FIM