ASP.NET Web API: Filtros e Ordenação em Web Services RESTful
Utilizando o ASP.NET Web API e Entity Framework veremos como desenvolver um web service RESTful. Esse serviço conta com funções de CRUD, paginação, filtros diversos, ordenação e seleção de campos.
Projeto já adicionado aos favoritos. Clique aqui para ver todos seus favoritos
Obrigado pela sua avaliação, deixe o seu feedback nos comentários :D
Web service RESTful com CRUD utilizando ASP.NET Web API
Conteúdo de apoio
Neste exemplo desenvolveremos um web service para cadastro de vagas de emprego. Para isso utilizaremos as seguintes tecnologias:
- ASP.NET Web API: framework para criação de web services RESTful no .NET Framework;
- Entity Framework: framework de Mapeamento Objeto-Relacional que será usado para acessar o banco de dados SQL Server;
- Fluent API: conjunto de classes do Entity Framework por meio das quais é possível configurar o Mapeamento Objeto-Relacional sem usar Data Annotations, mantendo essa tarefa isolada em uma classe;
- FluentValidation: biblioteca gratuita e de código aberto para realização de validações em classes usando Lambda Expressions. Neste exemplo essa biblioteca será utilizada para substituir as Data Annotations e superar limitações destas;
- OData: protocolo para criação de web services com listagem, paginação, filtro, ordenação e seleção de campos a partir da URL.
Verbos e códigos do HTTP
Nesse web service empregaremos os verbos do protocolo HTTP da forma como eles têm sido mais adotados no mercado para a construção desse tipo de solução. A Figura 1 ilustra a função para a qual cada verbo HTTP será utilizado no nosso serviço.
Além disso utilizaremos também os códigos de status previstos pelo protocolo HTTP para indicar o resultado das requisições, da seguinte forma:
Requisições bem sucedidas:
- 200 OK: para requisições do tipo GET bem sucedidas, em que um ou mais registros são listados;
- 201 Created: para requisições POST bem sucedidas, quando um novo registro é cadastrado;
- 204 No Content: para requisições PUT e DELETE bem sucedidas, quando a operação foi realizada com sucesso mas não precisamos retornar nenhum dado adicional para o cliente.
Requisições com problema:
- 400 Bad Request: para requisições com parâmetros inválidos. Por exemplo, quando o cliente tentar cadastrar um registro que não seja aprovado na validação;
- 401 Unauthorized: para requisições POST, PUT e DELETE
- 404 Not Found: para requisições GET, PUT e DELETE em que o registro solicitado não for localizado no banco de dados (filtrando pelo id);
Além desses códigos, que serão gerenciados por nós, o próprio framework já retorna o código 500 Internal Server Error em caso de erros não tratados.
Sugestão de conteúdo:
Para aprender mais sobre o desenvolvimento de web services RESTful com o ASP.NET Web API confira o curso abaixo: