diff --git a/_images/13.01.14 - 1.jpg b/_images/13.01.14 - 1.jpg new file mode 100644 index 0000000..5a9c06a Binary files /dev/null and b/_images/13.01.14 - 1.jpg differ diff --git a/_images/RightWrongBlackboard.jpg b/_images/RightWrongBlackboard.jpg new file mode 100644 index 0000000..9f90a36 Binary files /dev/null and b/_images/RightWrongBlackboard.jpg differ diff --git a/_images/Seascapeshd - 2.png b/_images/Seascapeshd - 2.png new file mode 100644 index 0000000..e980ea4 Binary files /dev/null and b/_images/Seascapeshd - 2.png differ diff --git a/_images/content-strategy.jpg b/_images/content-strategy.jpg new file mode 100644 index 0000000..88f3cce Binary files /dev/null and b/_images/content-strategy.jpg differ diff --git a/_images/haeder.png b/_images/haeder.png new file mode 100644 index 0000000..9769f6c Binary files /dev/null and b/_images/haeder.png differ diff --git a/_images/jellybeans.jpg b/_images/jellybeans.jpg new file mode 100644 index 0000000..a12ab38 Binary files /dev/null and b/_images/jellybeans.jpg differ diff --git a/_images/loomingskies-102.jpg b/_images/loomingskies-102.jpg new file mode 100644 index 0000000..f699207 Binary files /dev/null and b/_images/loomingskies-102.jpg differ diff --git a/_images/mixed.png b/_images/mixed.png new file mode 100644 index 0000000..fc4e78a Binary files /dev/null and b/_images/mixed.png differ diff --git a/_images/wallpaper_1786472671.jpg b/_images/wallpaper_1786472671.jpg new file mode 100644 index 0000000..af6db50 Binary files /dev/null and b/_images/wallpaper_1786472671.jpg differ diff --git a/rest/background.jpg b/rest/background.jpg deleted file mode 120000 index 485460c..0000000 --- a/rest/background.jpg +++ /dev/null @@ -1 +0,0 @@ -../_images/2014.jpg \ No newline at end of file diff --git a/rest/rest.pin b/rest/rest.pin index 83ec8f7..f6b5829 100644 --- a/rest/rest.pin +++ b/rest/rest.pin @@ -1,7 +1,7 @@ #!/usr/bin/env pinpoint # default style -[background.jpg] +[../_images/Seascapeshd - 2.png] [font=Sans 50px] [fill] [center] @@ -13,5 +13,105 @@ # presentation starts here --- [font=Sans 100px] [text-align=center] -REST +ReST REpresentational State Transfer + +--- + +⬩ Criado por Roy Fielding em 2000. +⬩ Fielding trabalhou na definição do HTTP e no início do projeto Apache. + +--- [font=Sans 90px] [../_images/mixed.png] + +ReST e HTTP + +--- [../_images/mixed.png] + +⬩ Status das operações são status HTTP. +⬩ Informações podem ser enviadas nos headers. +⬩ Autenticação é feita por HTTP Basic Auth (preferencialmente). +⬩ "CRUD para web". + +--- [../_images/mixed.png] + +Em HTTP, usam-se "métodos" para descrever o que quer ser feito: + +⬩ POST requisita informações, passando um "corpo" de dados. +⬩ GET requisita informações, sem corpo. + +--- [../_images/mixed.png] + +Em REST, métodos HTTP viram CRUD: + +⬩ Create = POST +⬩ Retrieve = GET +⬩ Update = PUT +⬩ Delete = DELETE + +--- [font=Sans 90px] [../_images/jellybeans.jpg] + +Recursos + +--- [../_images/jellybeans.jpg] + +⬩ Em REST, "tabelas" são chamadas "recursos" +⬩ Existem duas URLs por recurso: + ⬨ Uma para o conjunto; + ⬨ Uma para elementos específicos. + +--- [../_images/jellybeans.jpg] + +GET /recurso/ ⇒ retorna todos os elementos do recurso. +POST /recurso/ ⇒ cria um novo elemento. +PUT /recurso/ ⇒ atualização em massa. +DELETE /recurso/ ⇒ remove todos os elementos do recurso. + +--- [../_images/jellybeans.jpg] + +GET /recurso/id ⇒ retorna informações do elemento com identificador "id". +POST /recurso/id ⇒ não faz sentido, use POST /recurso/ para criar elementos. +PUT /recurso/id ⇒ atualiza informações do elemento. +DELETE /recurso/id ⇒ Remove um elemento. + +--- [../_images/jellybeans.jpg] + +Exemplos: + +GET /users/ ⇒ Retorna a lista de todos os usuários. +POST /users/ ⇒ Cria um novo usuário. + +GET /users/julio ⇒ Retorna as informações do usuário "julio". +PUT /users/julio ⇒ Atualiza informações do usuário "julio". + +--- [font=Sans 90px] [../_images/content-strategy.jpg] + +Conteúdo + +--- [../_images/content-strategy.jpg] + +Qualquer formato, REST não define um tipo específico. + +⬩ Pode ser XML +⬩ Pode ser JSON +⬩ Pode ser HTML puro + +Decisão fica a cargo da equipe. + +--- [font=Sans 90px] [../_images/RightWrongBlackboard.jpg] + +Status + +--- [../_images/RightWrongBlackboard.jpg] + +HTTP status: + +⬩ 200 OK ⇒ operação concluída com sucesso. +⬩ 400 Bad Request ⇒ algo de errado com a requisição. +⬩ 403 Forbidden ⇒ sem permissão de acesso ao recurso ou elemento. +⬩ 404 Not Found ⇒ recurso ou elemento não existe. +⬩ 405 Method Not Allowed ⇒ método inválido para recurso/elemento. +⬩ 406 Not Acceptable ⇒ algum parâmetro não faz sentido. +⬩ 409 Conflict ⇒ conflito de opções. + +E assim por diante, mais informações podem ser enviadas no corpo +da resposta.