Sistemas I
Rest
Professor: Jezer Machado de Oliveira
Cliente Servidor
Protocolos cliente/servidor
● Socket
➔
Estabelecem fluxo de bits
● RPC
➔
Remote Procedure Call
● Corba
➔
Common Object Request Broker Architecture
● RMI
➔
Remote Method Invocation
Cliente Servidor
Camada Protocolo
Física Cabos, ondas
Enlace de dados ethernet, wi-Fi, modem
Rede IPv4, IPv6
Transporte TCP, UDP
Aplicação HTTP, HTTPS, FTP, DNS, SMTP
HTTP - URL
Caminho
Protocolo de diretório
http://www.exemplo.com.br/diretorio/conteudo.html
Conteúdo
Servidor
final
HTTP
HTTP
Requisição HTTP
----
Content-Disposition: form-data; name="nome"
teste
----
HTTP
Retorno HTTP
HTTP/1.1 200 OK
Date: Mon, 23 July 2017 22:38:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: 81
Last-Modified: Wed, 08 Jan 2017 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
<html>
<body>
Hello World, this is a very simple HTML document.
</body>
</html>
HTTP
Retorno HTTP
XML ???
REST
● XML
➔
Verborrágico
➔
Difícil de ler para humanos
➔
Difícil de processar por software
REST
Método
URL
GET POST PUT DELETE
http://exemplo.com. Lista todas as Cria uma nova Substitui a Apaga a lista
br/pessoas pessoas pessoa lista inteira de inteira de
pessoas pessoas
● URI
➔
<URL>/produtos/
● Interfaces
➔
GET - lista ou pesquisa produto
➔
POST - cria novo produto
➔
PUT - atualiza um produto
➔
DELETE - apaga um produto
REST - GET
● Requisição (http://localhost/rest/produtos/)
● Resposta
REST - GET
● Requisição (http://localhost/rest/produtos/1)
● Resposta
REST - POST
● Requisição (http://localhost/rest/produtos/)
● Resposta
REST - PUT
● Requisição (http://localhost/rest/produtos/4)
● Resposta
REST - DELETE
● Requisição (http://localhost/rest/produtos/4)
● Resposta
REST - Spring