use ef.inmemory

main
Peace 11 months ago
parent 7e24dbc845
commit 4811e1e9b7
  1. 15
      MinimumWebAPIWithEF/DB/PizzaDb.cs
  2. 1
      MinimumWebAPIWithEF/MinimumWebAPIWithEF.csproj
  3. 9
      MinimumWebAPIWithEF/Models/Pizza.cs
  4. 60
      MinimumWebAPIWithEF/Program.cs

@ -0,0 +1,15 @@
using Microsoft.EntityFrameworkCore;
using MinimumWebAPIWithEF.Models;
namespace MinimumWebAPIWithEF.DB
{
public class PizzaDb : DbContext
{
public DbSet<Pizza> Pizzas { get; set; } = null;
public PizzaDb(DbContextOptions options) : base(options)
{
}
}
}

@ -8,6 +8,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.6" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup>

@ -0,0 +1,9 @@
namespace MinimumWebAPIWithEF.Models
{
public class Pizza
{
public int Id { get; set; }
public string? Name { get; set; }
public string? Description { get; set; }
}
}

@ -1,9 +1,24 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.OpenApi.Models;
using MinimumWebAPIWithEF.DB;
using MinimumWebAPIWithEF.Models;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Title = "PizzaStore API",
Description = "Making the Pizzas you love",
Version = "v1"
});
});
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));
var app = builder.Build();
@ -11,11 +26,52 @@ var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "PizzaStore API V1");
});
}
app.UseHttpsRedirection();
app.MapGet("/", () => "Hello Pizza!");
// Pizza routing map
app.MapGet("/pizzas", async (PizzaDb db) => await db.Pizzas.ToListAsync());
app.MapGet("/pizza/{id}", async (PizzaDb db, int id) => await db.Pizzas.FindAsync(id));
app.MapPost("/pizza", async (PizzaDb db, Pizza pizza) =>
{
await db.Pizzas.AddAsync(pizza);
await db.SaveChangesAsync();
return Results.Created($"/pizza/{pizza.Id}", pizza);
});
app.MapPut("/pizza/{id}", async (PizzaDb db, Pizza updatedPizza, int id) =>
{
var pizza = await db.Pizzas.FindAsync(id);
if (pizza is null)
return Results.NotFound();
pizza.Name = updatedPizza.Name;
pizza.Description = updatedPizza.Description;
await db.SaveChangesAsync();
return Results.NoContent();
});
app.MapDelete("/pizza/{id}", async (PizzaDb db, int id) =>
{
var pizza = await db.Pizzas.FindAsync(id);
if (pizza is null)
return Results.NotFound();
db.Pizzas.Remove(pizza);
await db.SaveChangesAsync();
return Results.Ok();
});
app.Run();

Loading…
Cancel
Save