From 738affa47144998e25fe632724bf17686e679a93 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Wed, 18 Jun 2014 16:19:05 -0300 Subject: [PATCH] finally, everything in reveal --- rest-reveal/index.html | 162 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 160 insertions(+), 2 deletions(-) diff --git a/rest-reveal/index.html b/rest-reveal/index.html index 4b04d7d..f6a3972 100644 --- a/rest-reveal/index.html +++ b/rest-reveal/index.html @@ -37,6 +37,9 @@ @@ -113,8 +116,8 @@ img { Em HTTP, usam-se métodos para descrever o que quer ser feito:

(Ainda: PUT, DELETE, HEAD, TRACE, PATCH, OPTIONS)

@@ -153,6 +156,161 @@ img { + +
+

URLs para o Recurso

+ + +
+ +
+

URLs para o Elemento

+ + +
+ +
+

Exemplos

+ + +
+ +
+

Requisições sem recursos

+ + Requisições sem um recurso definido utilizam um verbo e GET: + + GET /covert/?source=BRL&value=10&target=AUD +
+ + +
+
+

Conteúdo

+ +
+ +
+

Qualquer formato, ReST não define um específico.

+ +
    +
  • XML
  • +
  • JSON
  • +
  • HTML (www-form-encoded)
  • +
  • CNAB
  • +
+ +

Fica a cargo da equipe decidir o melhor formato para a aplicação.

+
+
+ +
+
+

Status

+ +
+ +
+

São utilizados os status HTTP

+ +
    +
  • 200 OK ⇒ operação concluída com sucesso.
  • +
  • 400 Bad Request ⇒ algo errado com a requisição.
  • +
  • 401 Unauthorized ⇒ o usuário informado não tem permissão para acessar o recurso.
  • +
  • 403 Forbidden ⇒ precisa de autenticação e essa não foi informada.
  • +
  • 404 Not Found ⇒ recurso ou elemento não existe.
  • +
  • 405 Method Not Allowed ⇒ metódo inválido para recurso/elemento (p.ex. "POST" num elemento)
  • +
+ +

E assim por diante...

+
+ +
+

Problema:

+ +

ReST não define o que fazer em caso de conflito dos erros.

+
+ +
+

Exemplo:

+ +

Operação para adicionar um usuário à um grupo:

+ +
    +
  • 404 se o grupo não existir;
  • +
  • Qual status a ser retornado quando o usuário não existe, neste caso?
  • +
+ +

Normalmente é enviado um corpo junto com o erro.

+
+
+ +
+
+

Por que usar ReST?

+ +
+ +
+
    +
  • Reaproveita toda a estrutura HTTP existente.
  • +
  • HTTP praticamente padrão em todas as linguagens na caixa.
  • +
  • Dificilmente portas HTTP (80 e 443) são bloequeadas em proxies.
  • +
  • "Sintaxe" simples.
  • +
+
+
+ +
+
+

Por que não usar ReST?

+ +
+ +
+
+ +
+
    +
  • Segurança depende de terceiros (HTTPS). +
      +
    • Existem outras opções (OAuth, por exemplo), mas são complexas e não se parecem + com soluções HTTP.
    • +
    +
  • +
  • Não recomendado para dispositivos com processamento e memória + extremamente limitados.
  • +
  • Necessidade de sessões/transações.
  • +
  • Requisito não é um serviço.
  • +
+
+ +
+
+ +
+
+ +
+

Perguntas?

+