alexandria: um sistema de sistemas para publicação de conteúdo digital utilizando rest e...

85
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hipermídia Luís Cipriani @lfcipriani (twitter, linkedin, github, ...) Seminário de Sistemas - IME (2013-04-08)

Upload: luis-cipriani

Post on 01-Jul-2015

1.040 views

Category:

Technology


0 download

DESCRIPTION

A palestra irá apresentar os desafios e as lições aprendidas em 3 anos de desenvolvimento de uma plataforma para gerência e publicação de conteúdo digital na Abril Mídia que aplica os conceitos de arquiteturas REST e APIs Hipermídia para conseguir entregar um grande volume de informação em diversos tipos de dispositivos. A plataforma é constituída de inúmeros domínios de informação, modulares e independentes, que se integram para permitir a criação de produtos digitais de forma mais ágil. Atualmente a plataforma suporta 14 sites e mais de 12 milhões de pageviews/mês e possui uma arquitetura poliglota, ou seja, com uma grande variedade de linguagens e tecnologias utilizadas.

TRANSCRIPT

Page 1: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando

REST e Hipermídia

Luís Cipriani @lfcipriani (twitter, linkedin, github, ...)Seminário de Sistemas - IME (2013-04-08)

Page 2: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

engineering.abril.com.br

talleye.com

Page 3: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

hoje nós vamos falar sobre...

Page 4: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST

Page 5: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Someone published a new REST API

Let’s check it out!! \o/

Page 6: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

mmm...

just another HTTP-based RPC...http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Page 7: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

por que há tanto mal entendimento em relação ao REST?

Page 8: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

quem entende errado, está fazendo errado?

Page 9: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

boaarquitetura

necessidadesatendidas

custoaceitável

= + * ß

ß quão bem o seu cliente sabe pedir o que quer :-P

MTRH

MTRH mean time to recovery happiness

Page 10: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

hoje nós vamos falar sobre...

Page 11: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

a nossa implementação do estilo arquitetural para

sistemas baseados em rede proposto pelo Roy Fielding, mais conhecida

como...

Page 12: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST

Page 13: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

RAIO X

Page 14: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

“organizações que projetam sistemas são restritas a produzir projetos que são cópias das estruturas de

comunicação dessas organizações”

Lei de Conway

http://www.melconway.com/Home/Conways_Law.html

Page 15: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

gráfica

distribuidora

educação

Page 16: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Playboy Veja

Viaje Aqui

Recreio

Bravo!

Page 17: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

CMS’s existem desde os anos 90.

Por que reiventamos a roda?

Page 18: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Porque temos alta diversidade

de

requisitosnegóciospessoas

orçamentosprioridades

culturas

{

Page 19: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

diretoria digitalPlayboy

Bravo!

Recreio

Page 20: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

14 sites em produção(em abr/2013)

Page 21: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

50 desenvolvedores12 arquitetos de software

6 Gerentes de Projeto4 Gerentes de Produto

1 Advocate da Plataforma(em abr/2013)

Page 22: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

• MongoDB• MySQL• Hbase• HDFS• PostgreSQL• memcached• redis

• ruby• java• javascript

• rails• sinatra• goliath• node.js• play• jetty• tokamak• cachebag• HTTPMonkey

linguagens storage frameworks outros

• Solr• Hadoop• RabbitMQ• Varnish• New Relic

https://github.com/abril

Page 23: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

infraestrutura Alexandria + sites

• 91 VMs para ambientes dev, qa, stage• AMC (Abril Mídia Cloud): private cloud (Xen/Open Stack)• ou VMWare

• ~100 VMs + 16 físicas para produção• Data center próprio, AWS, Heroku

• Total aproximado: 207 máquinas (abr/2013)

Page 24: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

12,5 milhões de pageviews(de 15/jan até 14/fev de 2013)

Page 25: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

HTTP

Page 26: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

domínio

• acesso e manipulação de recursos• implementa regras de negócio• servidor HTTP + base de dados• infra “isolada”• ~ 8 domínios• ex: editorial (matérias, galerias, etc), anotações (comentários), estabelecimentos, mídia, pessoas

Page 27: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

serviço

• consumo e manipulação de recursos• servidor HTTP + (opcional base de dados)• infra “isolada”• ~ 12 serviços• ex: console, socialcore, search, Abril ID, abr.io, etc

Page 28: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

data-entry• entrada da Redação• aplicação web• ~ 1 para cada domínio• “API explorer”

Page 29: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia
Page 30: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

sitetools• admin do site• manipulação das áreas e templates• agiliza criação de produtos• a fronteira com o usuário• opcional

Page 31: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia
Page 32: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

HTTP

domínio

serviço

data-entry sitetools

Page 33: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

system of systems

Page 34: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST

Page 35: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Por que escolhemos REST?

image from Roy Fielding dissertation (pag. 85)

Page 36: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS

Porque...

U

o_O

Page 37: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS UClient-Server

• Separação de responsabilidades• Escalabilidade (simplificação)• Evolução independente

http://byterot.blogspot.co.uk/2012/06/what-i-think-coupling-is.html

Page 38: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS UClient-Server no Alexandria

• Separação de responsabilidades • entre domínios e sites• entre domínios e data entries• entre domínios e serviços

• Escalabilidade• funcionalidade implementada nos clients• domínios só lidam com recursos (simplicidade)

• Evolução independente• em certos pontos da arquitetura não há• falta retro-compatibilidade

Page 39: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS U

• Visibilidade• Escalabilidade (recursos alocados)• Confiabilidade

• Performance de rede

Stateless

Page 40: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Stateless no Alexandria

• HATEOAS implementado nas APIs• cookies nas operações destrutivas

REST= +LCODC$SS U

Page 41: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS U

• Eficiência• Escalabilidade• Performance percebida pelo usuário

• Confiabilidade

Cache

Page 42: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Cache no Alexandria

• Built-in no protocolo HTTP• shared-caches instanciados entre alguns nós• pesquisa sobre caches locais• nem todos os nós implementam estratégia de cache• purge de recursos diretamente no cache

REST= +ULCODC$SS

Page 43: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS U

• Encapsula complexidade• Evolvabilidade• Simplicidade

• Performance percebida pelo usuário

Layered System

Page 44: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

• shared-caches• gateways para expor API para a Web• balanceadores de carga• encapsulamento de autenticação corporativa• encapsulamento de legado• permite evolução incremental do legado

REST= +ULCODC$SSLayered System no Alexandria

Page 45: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS U

• Extensibilidade• Simplificação do client

• Visibilidade

Code-on-demand

Page 46: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

• widgets dos data-entries• no futuro, o console também será instanciado assim• é um elemento importante do REST que foi esquecido por um tempo pela nossa arquitetura

REST= +ULCODC$SSCode-on-demand no Alexandria

Page 47: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST= +LCODC$SS U

• Simplificação pela generalidade• Visibilidade• Desacoplamento• Evolvabilidade

• Performance percebida pelo usuário• Restrita a dados com granularidade larga

Uniform interface

Page 48: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

REST=

niform interface no Alexandria

+LCODC$SS

U

Page 49: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresource identification

URIuniversal resource identifier

Page 50: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresource identification

/:tipo_recurso/:id

Page 52: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresources

Page 53: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresources

{ "tipo_recurso" : "materia", "link" : [ { "href" : "http://editorial.api.abril.com.br/materia/4f0dea5a1e13694", "rel" : "self", "type" : "application/json" }, { "href" : "http://editorial.api.abril.com.br/materias", "rel" : "materias", "type" : "application/json" } ], "id" : "http://editorial.api.abril.com.br/materia/4f0dea5a1e13694", "slug" : "o-quintal-da-realeza", "marca" : "viajeaqui", "status" : "disponivel", "descricao_conteudo" : "O quintal da realeza", "fonte" : "viajeaqui",

(continua)

Page 54: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresources "criacao" : { "usuario" : "Miguel Icassatti", "data" : "2012-01-11T18:00:26-02:00" }, "ultima_atualizacao" : { "usuario" : "Miguel Icassatti", "data" : "2012-01-19T16:47:18-02:00" }, "disponibilizacao" : { "usuario" : "Miguel Icassatti", "data" : "2012-01-11T18:05:44-02:00" }, "conteudos_relacionados" : [ { "slug" : "4f0deb759d0a73284d00001e", "link" : { "href" : "http://editorial.api.abril.com.br/galerias_multimidia/4f0deb759d0a73284", "rel" : "galeria_multimidia", "type" : "application/json" }, "preview" : "http://imgms.alexandria.abril.com.br/10/thumbnail-240x240-a1.jpeg", "tipo_recurso" : "galeria_multimidia", "fonte" : "viajeaqui", "credito" : "(não especificado)", "descricao" : "Fotos das atrações e estabelecimentos de Windsor, cidade da Inglaterra", "id" : "http://editorial.api.abril.com.br/galerias_multimidia/4f0deb759d0a73284d00001e", "titulo" : "Especial viajeaqui em Londres" } ],

(continua)

Page 55: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uresources

"rotulos_controlados" : [ "Londres2012" ], "tags" : [ "Londres", "restaurantes", "atrações" ], "editorias" : [ "Matérias" ], "categorias" : [ "Turismo e Lazer", "Turismo e Lazer::Cidade", "Turismo e Lazer::País" ], "autor" : "Miguel Icassatti", "titulo" : "O quintal da realeza", "chapeu" : "Windsor", "subtitulo" : "Nossa viagem pela Inglaterra tem a primeira parada na histórica Windsor.", "corpo" : "<p>Localizada às margens do rio Tâmisa, que corta também Londres, a cidade de Windsor já foi sede da monarquia britânica.</p>"}

Page 56: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Urepresentations

JSON

Page 57: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Urepresentations

e um tiquinho assim de XML

ou melhor,de application/opensearchdescription+xml

Page 58: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Urepresentations

<?xml version="1.0" encoding="UTF-8"?><OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:grafo="http://socialcore.api.abril.com.br/grafo/busca">

<ShortName>Buscar relacionamentos</ShortName> <Description>Busca de relacionamentos no grafo</Description>

<Url type="application/json" template="http://socialcore.api.abril.com.br/grafo/busca?usuario={grafo:usuario?}&amp;tipo={grafo:tipo}"/>

<Query role="example" title="Exemplo de valores dos parâmetros" grafo:usuario="id do usuario" grafo:tipo="segue |seguido_por " />

</OpenSearchDescription>

Page 59: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

image from the book Rest in Practice (by Jim Webber) (pag. 14)

Page 60: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

Exercício: criar uma atividade de um usuário no site.

Você só sabe o entrypoint:

http://socialcore.api.abril.com.br

Page 61: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

POST  http://socialcore.api.abril.com.br/Accept:  application/json

Page 62: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

POST???

Page 63: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

HTTP/1.1 405 Method Not AllowedAllow: GET

Page 64: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

GET  http://socialcore.api.abril.com.br/Accept:  application/json

Page 65: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

UhypermediaHTTP/1.1 200 OKContent-Type: application/json; charset=utf-8{ "titulo": "socialcore", "link": [ { "href": "http://socialcore.api.abril.com.br/", "rel": "self", "type": "application/json" }, { "href": "http://socialcore.api.abril.com.br/atividade", "rel": "atividade", "type": "application/json" }, { "href": "http://socialcore.api.abril.com.br/grafo", "rel": "grafo", "type": "application/json" } ]}

Page 66: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

GET  http://socialcore.api.abril.com.br/atividadeAccept:  application/json

Page 67: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

HTTP/1.1 200 OKContent-Type: application/json; charset=utf-8{ "titulo": "Entry Point de Atividades", "link": [ { "href": "http://socialcore.api.abril.com.br/atividade/template", "rel": "template", "type": "application/json" }, { "href": "http://socialcore.api.abril.com.br/atividade/busca/descritor", "rel": "search", "type": "application/opensearchdescription+xml" }, { "href": "http://socialcore.api.abril.com.br/atividade/stat/descritor", "rel": "stat", "type": "application/opensearchdescription+xml" } ]}

Page 68: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

GET  http://socialcore.api.abril.com.br/atividade/templateAccept:  application/json

Page 69: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

HTTP/1.1 200 OKContent-Type: application/json; charset=utf-8{ "atividade": { "app": "", "created_at": "", "usuario": "", "tipo": "", "objeto": { "tipo": "" }, "resultado": { "tipo": "" } },

(continua)

Page 70: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

"link": [ { "href": "http://socialcore.api.abril.com.br/atividade", "rel": "atividade", "type": "application/json" }, { "href": "http://socialcore.api.abril.com.br/atividade/busca/descritor", "rel": "search", "type": "application/opensearchdescription+xml" }, { "href": "http://socialcore.api.abril.com.br/atividade/stat/descritor", "rel": "stat", "type": "application/opensearchdescription+xml" } ]}

Page 71: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

UhypermediaPOST  http://socialcore.api.abril.com.br/atividadeAccept:  application/jsonContent-­‐Type:  application/json;  charset=utf-­‐8Authentication:  Basic  37rnx9w87rjdw87gri

{ "atividade": { "app": "http://aapg.api.abril.com.br/produtos/1", "created_at": 1325086429, "tipo": "comentar", "objeto": { "descricao": "Titulo da materia", "id": "http://veja.abril.com.br/noticia/economia/confianca-da", "tipo": "materia" }, "resultado": { "corpo": "otima materia", "id": "http://veja.abril.com.br/noticia/economia/confianca-da/comments/1", "tipo": "comentario" } }}

Page 72: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

HTTP/1.1 422 Unprocessable EntityContent-Type: application/json; charset=utf-8{ "tipo_recurso":"erro", "atividade":{ "usuario":"", }, "erros":[ {"atributo":"usuario","mensagem":["é obrigatório"]} ]}

Page 73: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

UhypermediaPOST  http://socialcore.api.abril.com.br/atividadeAccept:  application/jsonContent-­‐Type:  application/json;  charset=utf-­‐8Authentication:  Basic  37rnx9w87rjdw87gri

{ "atividade": { "app": "http://aapg.api.abril.com.br/produtos/1", "created_at": 1325086429, "usuario": "http://aapg.api.abril.com.br/usuarios/2", "tipo": "comentar", "objeto": { "descricao": "Titulo da materia", "id": "http://veja.abril.com.br/noticia/economia/confianca-da", "tipo": "materia" }, "resultado": { "corpo": "otima materia", "id": "http://veja.abril.com.br/noticia/economia/confianca-da/comments/1", "tipo": "comentario" } }}

Page 74: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uhypermedia

HTTP/1.1 201 CreatedContent-Type: application/json; charset=utf-8Location: http://socialcore.api.abril.com.br/atividade/0922307

\o/

Page 75: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Uapplication protocol

HTTPstatus codes

representation metadataresource metadata

control data

Page 76: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Lições aprendidas

Page 77: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

pontos importantes em performance

clientorigin server

• performance dos connectors• non-blocking HTTP clients

• cache local• middleware architecture• libs padronizadas

• short stacks• evented servers• libs padronizadas

• good TTL strategy• middleware architecture

• caches• HTTP plumbing

Page 78: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

• Lei de Postel• Seja conservador no que faz, seja liberal no que você aceita dos outros

• REST é uma arquitetura de longo prazo

• Defenda com todas as suas forças:• seus metadados (recursos)• sua interface

• Documentação é essencial

• Independência de desenvolvimento dos nós tem suas desvantagens

• medir/monitorar o desempenho é importantíssimo

Page 79: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Assumimos que nossa arquitetura está válida.

Page 80: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

necessidadesatendidas

custoaceitável + * ß

MTRH

mas...

Page 81: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

e quando REST não for suficiente?

Page 82: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

não use REST

Page 83: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

Os responsáveis

Page 84: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia
Page 85: Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utilizando REST e Hípermídia

• bit.ly/abril_qcon_refs

• engineering.abril.com.br

• talleye.com

• digital.abril.com.br

Obrigado!