Hipermídia para Serviços
Alexandre Gaigalas
Alexandre Gaigalas
- Apenas mais um rostinho bonito sem conteúdo
- Auto-didata, leitor de RFCs e especificações
- Batedor de código fonte desde a época das tabelas
Agenda
- REST e Hipermídia: o que são
- A relação entre HTTP e REST
- Mini-Projeto: Catálogo
Hipermídia é informação com controles manipuláveis
C. Alexander, S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King, and S. Angel. A Pattern Language. Oxford University Press, New York, 1977.
A Pattern Language
REST é um estilo de arquitetar software
REST em um Slide
- Baixa Curva de Aprendizado
- Extensibilidade
- Hipermídia Distribuída
- Escala da Internet
- Cliente-Servidor
- Stateless
- Cacheável
- Camadas
- Interface Uniforme
- Código sob Demanda**
Requisitos
Regras
- Performance
- Escalabilidade
- Simplicidade
- Manutenibilidade
- Visibilidade
- Portabilidade
- Confiabilidade
Propriedades
Fatores Derivados de Outros Estilos
Fatores RESTful
- Cliente-Servidor
- Stateless
- Cacheável
- Camadas
- Código sob Demanda
Interface Uniforme
}
- Identificação de Recursos
- Mensagens auto-descritivas
Manipulação de RepresentaçõesHipermídia como motor de estado
HTTP
HATEOAS
(Hypermedia as the engine of application state)
Loop de controles de hipermídia + representações
Projeto: Catálogo
Recurso |
URI | Links |
---|---|---|
Home | /store | /categories, /products |
Lista de Produtos | /products | /products/{id} |
Um Produto | /products/{id} | /categories/{id} |
Lista de Categorias | /categories | /categories/{id} |
Uma Categoria | /categories/{id} | /products/{id} |
Projeto: Catálogo
{
"_links": {
"self": { "href": "/store" },
"categories": { "href": "/categories" },
"products": { "href": "/products "}
}
}
Projeto: Catálogo
{
"_links": {
"self": { "href": "/products" },
"parent": { "href": "/store" }
},
"_embedded": {
"product": [
{
"_links": {"self": "/products/123"},
"name": "Shirt",
"price": 30.00
},
{
"_links": {"self": "/products/456"},
"name": "Pants",
"price": 30.00
}
]
}
}
Hora da Demo!
Nós vimos...
- REST e Hipermídia: o que são
- A relação entre HTTP e REST
- Mini-Projeto: Catálogo
Hipermídia para Serviços
By alganet
Hipermídia para Serviços
- 953