O projeto está inativo

Web service RESTful com CRUD, filtros e ordenação usando ASP.NET Web API

Neste exemplo veremos como desenvolver um web service RESTful utilizando ASP.NET Web API e Entity Framework. Esse serviço conta com funções de CRUD, paginação, filtros diversos, ordenação e seleção de campos.

1 - 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.

Relação entre os verbos HTTP e as ações do web service
Figura 1. Relação entre os verbos HTTP e as ações do web service

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:

Ficou com alguma dúvida?