1. Crear la API REST (con ASP.
NET Core Web API)
Paso 1: Crear el proyecto de la API
bash
CopiarEditar
dotnet new webapi -n MiApiRest
cd MiApiRest
Paso 2: Crear un modelo (por ejemplo, Producto.cs)
csharp
CopiarEditar
public class Producto
public int Id { get; set; }
public string Nombre { get; set; }
public decimal Precio { get; set; }
Paso 3: Crear un controlador
csharp
CopiarEditar
[ApiController]
[Route("api/[controller]")]
public class ProductosController : ControllerBase
private static List<Producto> productos = new()
new Producto { Id = 1, Nombre = "Café", Precio = 2.5M },
new Producto { Id = 2, Nombre = "Té", Precio = 1.5M }
};
[HttpGet]
public ActionResult<IEnumerable<Producto>> Get() => productos;
[HttpPost]
public ActionResult<Producto> Post(Producto p)
p.Id = productos.Max(x => x.Id) + 1;
productos.Add(p);
return CreatedAtAction(nameof(Get), new { id = p.Id }, p);
Paso 4: Ejecutar la API
bash
CopiarEditar
dotnet run
2. Crear la app Blazor (Server o WebAssembly)
Aquí usaremos Blazor WebAssembly, aunque el código es casi idéntico en Blazor Server.
bash
CopiarEditar
dotnet new blazorwasm -n ClienteBlazor
cd ClienteBlazor
Paso 5: Añadir llamada a la API REST
Edita Program.cs y añade el HttpClient apuntando a tu API:
csharp
CopiarEditar
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new
Uri("https://localhost:5001/") });
Paso 6: Consumir la API desde una página
Edita el archivo Pages/Productos.razor:
razor
CopiarEditar
@page "/productos"
@inject HttpClient Http
<h3>Productos</h3>
@if (productos is null)
<p><em>Cargando...</em></p>
else
<ul>
@foreach (var p in productos)
<li>@p.Nombre - @p.Precio €</li>
</ul>
@code {
private List<Producto>? productos;
protected override async Task OnInitializedAsync()
productos = await Http.GetFromJsonAsync<List<Producto>>("api/productos");
public class Producto
public int Id { get; set; }
public string Nombre { get; set; } = "";
public decimal Precio { get; set; }
}
}