sábado, 18 de abril de 2015

Análise do Vídeo Web Api Validation and Error Handling

Segue um post com anotações do vídeo abaixo que dá boas dicas para validação e manipulação de erro de Web Api do Channel 9.

Status Code (Código de Status)

Forma padrão de comunicação do HTTP.

200 – OK

201 – Created

404 – Not Found

Lista com todos os status:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

http://www.w3schools.com/tags/ref_httpmessages.asp

Model Validation

Data Annotations

Adicionando em propriedades para ajudar na validação

· Tipos primitivos validados por padrão

Validações Customizadas

Exemplo de validação customizada utilizando o ModelState.AddModelError() e ModelState.IsValid
https://github.com/MicrosoftLearning/WebAPIDesign/blob/master/04%20-%20Validation%20and%20Error%20Handling/04aModelValidation/Controllers/UsersController.cs

Built-in Helpers

Na classe anscestral ApiController há metodos para ajudar no retorno do HTTP, já definindo o HttpStatusCode (Código de status da requisição HTTP)

Alguns exemplos citados:

  • Conflict
  • Created
  • CreatedAtRoute
  • InternalServerError
  • NotFound
  • Ok

Nesta página há todos disponíveis:

https://msdn.microsoft.com/en-us/library/system.web.http.apicontroller_methods%28v=vs.118%29.aspx

E nesta página do GitHub vários exemplos de funcionamento:

https://github.com/MicrosoftLearning/WebAPIDesign/blob/master/04%20-%20Validation%20and%20Error%20Handling/04aModelValidation/Controllers/HelpersController.cs

Exception Filters

Artigo sobre a manipulação de erro através do Exception Filters:

http://www.asp.net/web-api/overview/error-handling/exception-handling

Global Exception Logger and Handling (Manipulação e registro de exceções globais)

Artigo sobre Manipulação e registro de exceções globais:

http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling