ASP.NET WebApi : Iniciando com MVC4 - Parte 2

watch_later 10 de mar de 2014
Como criar um novo projeto Web API

Inicie seu Visual Studio 2010 / 2012 ou 2013 e siga os passos:


  1. Selecione New Project no menu File da página inicial, em seguida, em New Project.
  2. A partir da lista de templates de projeto: selecione  ASP.NET MVC 4 Web Application. Selecione a sua localização preferencial em seguida, digite o nome do projeto desejado e clique em OK.
  3. Na caixa de diálogo New Project  ASP.NET MVC 4, selecione Web API. A View engine será Razor por padrão, em seguida, clique em OK.



Adicionar uma Model

Um objeto model é um objeto que representa os dados em seu aplicativo. ASP.NET  Web API pode serializar automaticamente o seu modelo para JSON, XML ou outros. Então  serializado ele pode escrever esses dados no corpo da mensagem de resposta HTTP. Contanto que um cliente possa ler o formato de serialização, e desserializar o objeto. A maioria dos clientes são capazes de analisar XML ou JSON. Ao definir o cabeçalho Accept na mensagem de solicitação HTTP que o cliente pode indicar qual o formato que quiser. 


Vamos provar os conceitos acima passo a passo. Vamos começar criando um modelo simples. 

No Solution Explorer, clique com o botão direito na pasta Models, em seguida, selecione Adicionar e selecione Class.



A nossa classe irá se chamar Books , a seguir adicione as seguintes propriedades em sua classe Book.

public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }

Add um Repositório

Para servir os propósitos de nosso artigo, vamos armazenar uma lista na memória e o serviço HTTP irá armazenar uma lista de livros. 

Vamos separar o objeto livro da nossa implementação do serviço. Isso é porque nós podemos mudar o armazenamento de backup sem reescrever a classe de serviço. Este tipo de projeto é chamado o padrão Repository. Para isso, precisamos de uma interface genérica. Vamos ver as etapas a seguir para saber como definir uma interface genérica para um repositório de livros. 

No Solution Explorer, clique com o botão direito na pasta Models. Selecione Adicionar e selecione New Item. 

Em seguida, adicione uma outra classe para a pasta Models, com o nome "BookRepository", que irá implementar a interface IBookRespository derivado IBookRepository:

Implementação do código:
public interface IBookRepository
{
   IEnumerable<book> GetAll();
   Book Get(int id);
   Book Add(Book item);
   void Remove(int id);
   bool Update(Book item);
}

public class BookRepository : IBookRepository
{
    private BookStore db = new BookStore();

    public BookRepository()
    {
    }

    public IEnumerable<Book> GetAll()
    {
        return db.Books;
    }

    public Book Get(int id)
    {
        return db.Books.Find(id);
    }

    public Book Add(Book item)
    {
        db.Books.Add(item);
        db.SaveChanges();
        return item;
    }

    public void Remove(int id)
    {
        Book book = db.Books.Find(id);
        db.Books.Remove(book);
        db.SaveChanges();
    }

    public bool Update(Book item)
    {
        db.Entry(item).State = EntityState.Modified;
        db.SaveChanges();
        return true;
    }
}

O repositório vai manter os livros na memória local , por isso será usado apenas como exemplo , por favor não vai fazer isso no seu aplicativo, não faça isso. Porque você precisa armazenar dados reais em um banco de dados ou em Cloud. O padrão Repository, será mais fácil de alterar a implementação mais tarde.

Adicionando um Controller de Web API


Se você já trabalhou antes com ASP.NET MVC, então você já está familiarizado com as controllers. No ASP.NET Web Api, um controlador é uma classe que lida com solicitações HTTP a partir do cliente. O assistente New project criou duas controllers para você quando se você criou um novo projeto. Para vê-los, expanda a pasta Controllers no Solution Explorer. 



HomeController é um controlador tradicional ASP.NET MVC. Ele é responsável por servir páginas HTML para o site, e não está diretamente relacionada com o nosso serviço Web API. ValuesController é um controlador WebAPI exemplo. 

Como queremos começar do zero, vá em frente e exclua ValuesController. Não é preciso mencionar como excluir? OK, clique com o botão direito no arquivo em Solution Explorer e selecione Excluir. 

Agora adicione um novo controlador, como se segue: 

No Solution Explorer, clique com o botão direito na pasta Controllers. Selecione Adicionar e selecione Controller. 

No Assistente para adicionar Controller, nomear a controller para BooksController. Na lista Template suspensa, selecione Controlador Empty Api Controller. Em seguida, clique em Adicionar.


O assistente para adicinar controller irá criar um arquivo chamado BooksController.cs na pasta Controllers. Se esse arquivo não estiver aberto, clique duas vezes no arquivo para abri-lo. 

Adicione a seguinte usando instruções e adicionar um campo para a realização de uma instância IBookRepository.

using WebAPI.Models;
using System.Net;

public class BooksController : ApiController
{
   static readonly IBookRepository _repository = new BookRepository();
}


Bom , para não ficar muito cansativo esse artigo fica por aqui , na parte 3 iremos usar Dependency Injection , e na parte 4 irei começar a explicar o CRUD , usando Web API

Postagens da Mesma série :

Parte 1
Parte 2

Parte 3
Parte 4