Exercício: adicionar um arquivo de dados
Antes de começar a implementar uma API da Web para pizza, você precisa ter um armazenamento de dados no qual possa executar operações.
Você precisa de uma model
classe para representar uma pizza em seu inventário. O modelo contém propriedades que representam as características de uma pizza. O modelo é usado para passar dados na API da Web e para persistir opções de pizza no armazenamento de dados.
Nesta unidade, esse armazenamento de dados é um simples serviço de cache na memória local. Em um aplicativo do mundo real, você consideraria usar um banco de dados, como o SQL Server, com o Entity Framework Core.
Criar um modelo de pizza
Execute o seguinte comando para criar uma pasta Models :
mkdir Models
Selecione a pasta Modelos no Visual Studio Code e adicione um novo arquivo chamado Pizza.cs.
A raiz do projeto agora contém um Models diretório com um arquivo vazio Pizza.cs . O nome de diretório Models é uma convenção. O nome do diretório vem da arquitetura model-view-controller que a API da Web usa.
Adicione o seguinte código e Models/Pizza.cs salve suas alterações. Esta classe define uma pizza.
namespace ContosoPizza.Models; public class Pizza { public int Id { get; set; } public string? Name { get; set; } public bool IsGlutenFree { get; set; } }
Adicionar um serviço de dados
Execute o seguinte comando para criar uma pasta Serviços :
mkdir Services
Selecione a pasta no Visual Studio Code e adicione um novo arquivo chamado PizzaService.cs.
Adicione o seguinte código e Services/PizzaService.cs salve suas alterações. Este código cria um serviço de dados pizza na memória.
using ContosoPizza.Models; namespace ContosoPizza.Services; public static class PizzaService { static List<Pizza> Pizzas { get; } static int nextId = 3; static PizzaService() { Pizzas = new List<Pizza> { new Pizza { Id = 1, Name = "Classic Italian", IsGlutenFree = false }, new Pizza { Id = 2, Name = "Veggie", IsGlutenFree = true } }; } public static List<Pizza> GetAll() => Pizzas; public static Pizza? Get(int id) => Pizzas.FirstOrDefault(p => p.Id == id); public static void Add(Pizza pizza) { pizza.Id = nextId++; Pizzas.Add(pizza); } public static void Delete(int id) { var pizza = Get(id); if(pizza is null) return; Pizzas.Remove(pizza); } public static void Update(Pizza pizza) { var index = Pizzas.FindIndex(p => p.Id == pizza.Id); if(index == -1) return; Pizzas[index] = pizza; } }
Este serviço fornece um serviço simples de cache de dados na memória com duas pizzas por padrão. Nossa API da Web usa esse serviço para fins de demonstração. Quando você para e inicia a API da Web, o cache de dados na memória é redefinido para as duas pizzas padrão do construtor do
PizzaService
.
Crie o projeto de API da Web
Execute o seguinte comando para criar a aplicação:
dotnet build
A compilação tem êxito sem avisos. Se a compilação falhar, verifique a saída de informações sobre a resolução de problemas.
Na próxima unidade, você criará um controlador que usará o modelo e PizzaService
a Pizza
classe.