Seu navegador não suporta os requisitos mínimos para utilizar o impress.js!

Rest Client Side

17 de Março, sampa.js

Alexandre Gaigalas

http://about.me/alganet

Augusto Pascutti

http://about.me/augustohp

!

Arquitetura

Como você organiza elementos de software para alcançar certos objetivos.

Estilo Arquitetural

Como você alcança certos objetivos com determinadas regras de organização dos elementos de software.

Interface Uniforme

Negociação de Conteúdo

http://tabacaria.com/cachimbo

Negociação de Mime Type


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'image/jpeg'
        }
    });

Negociação de Mime Type


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'video/mpeg'
        }
    });

Negociação de Range


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'video/mpeg',
            Range: 'bytes=0-1024'
        }
    });

Negociação de Range


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'video/mpeg',
            Range: 'x-frames=50-100' //não-padrão!!!
        }
    });

Negociação de Range


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'image/gif',
            Range: 'x-frames=50-100'
        }
    });

Múltipla Negociação


    $.ajax({
        url: '/cachimbo',
        headers: {
            Accept: 'image/gif',
            Accept-Language: 'en-US',
            Accept-Encoding: 'gzip',
            X-Accept-Profile: 'sRGB',
            Range: 'x-frames=50-100;step=10'
        }
    });

Autenticação

Autenticação != Autorização

Http Basic


    $.ajax({
        url: '/user/mickey',
        username: 'mickey',
        password: 'mouse'
    });

Http Digest


    $(".signin_button").login();

OAuth

Cache

Não refaça o trabalho!

Tipos de Cache


    $.ajax({
        url: '/user/mickey'
        cache: true,      //padrão true
        ifModified: true  //padrão false
    });

$.ajax({
    url: '/user/mickey'
    headers: {
      'Cache-Control': 'max-age=600',
      'ETag': myEtag,
      'Last-Modified': 
        'Wed, 15 Feb 2012 04:58:08 GMT'
    }
});

$.ajax({
    url: '/user/mickey'
    headers: {
      'Cache-Control': 'max-age=600',
      'ETag': myEtag,
      'Vary': 'X-Accept-Profile, Accept-Language'
    }
});

Tratamento de Erros

Códigos de Erro Comuns

Customização da Status Line


$.ajax({
    url: '/user/mickey',
    error: function(jqXHR, text, e) {
        alert(textStatus);
    },
    sucess: function() {
        alert('Ok!');
    }
});

Erros e Cabeçalhos

Perguntas?

Obrigado!