segunda-feira, 13 de abril de 2015

Análise de vídeo Web Api Basic Design

Segue um post com anotações do vídeo abaixo que dá boas dicas para Design de Web Api do Channel 9.

Abaixo segue alguns pontos importantes que anotei ao ver o vídeo:
São mostrados exemplos de Design da disponibilização de Web Api como recursos, citando o Twitter, Azure e Github.

São citados os principais métodos do HTTP para utilização no RestFul:

1. Get: retorno de informações
2. Put: atualizações de registros
3. Post: inserções de registros
4. Delete: exclusão de registros

Abaixo métodos que estão disponíveis no Rest Easy


Citou a importância de permitir transações que devem ser feitas atomicamente por chamada ao servidor (obviamente, o servidor deve ser stateless, ou sem estado). Num exemplo de transferência bancária, não pode ser feito com duas chamadas de subtração de uma conta e adição em outra – já que o cliente pode cair deixando a equação inconsistente. Dessa forma, deve ser pensado num único serviço a ser chamado no Web api que internamente faz as duas operações dentro de uma transação.

Outro conceito interessante compartilhado foi para a comunicação ser "Chunky" e não “Chatty”. A ideia de ser Chunky ou robusto, é retornar toda a informação necessária numa única requisição ao servidor. A ideia de ser Chatty ou conversador é retornar um mínimo de informação que demanda nova chamada ao servidor – mas em aplicação multicamada, este custo pode ser demasiado.
https://depts.washington.edu/ontheroa/?p=343

Negociação de conteúdo
Um bom servidor Restful deve estar preparado para diferentes saídas e adaptá-la conforme requisição do cliente.

Repare que o retorno do servidor de Wep Api está variando conforme cabeçalho accept enviado.




Ferramentas para ajudar em testes

Microsoft ASP.NET Web API Help Page
Para gerar documentação de todas as Web Apis dinamicamente. Em 13/4/2015 não dá suporte ao MVC 6.

Fiddler
Um proxy depurador web para qualquer navegador.
Mostrou a funcionalidade Composer, que pode fazer requisições HTTML e a facilidade de repetir requisições feitas com possibilidade de modificar alguns valores, conforme prints abaixo



 Clicar com o botão direito / Replay / Reissue from composer:
Fonte de toda série: https://github.com/MicrosoftLearning/WebAPIDesign