Con esta web pueden auto generar las clases a partir de un objecto json.
Introducción
Presentación
Prerrequisitos
¿Qué es WebAssembly y Blazor?
Creando un proyecto de Blazor en Visual Studio
Creando un proyecto de Blazor con el CLI
Analizando extensiones de Visual code para blazor
Componentes de Blazor
Estructura de componentes y arquitectura en Blazor
Ciclo de vida en componentes y parámetros
Creando componentes compartidos
Creando archivo de configuración
Conectando Blazor a Backend
Configurando conexión al backend para el proyecto
Creando componentes para conexión a la API
Mostrando lista de productos
Creando Menú y CSS para la lista de productos
Creando formulario para agregar registros
Integrando formulario con servicios
Usando Librerías de Blazor
Creando funcionalidad de eliminar usando JavaScript
Usando Librerías de Blazor
Cierre
Conclusión y cierre
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Miguel Teheran
Aportes 11
Preguntas 4
Con esta web pueden auto generar las clases a partir de un objecto json.
productService.cs
using System.Net.Http.Json;
using System.Text.Json;
namespace blazorappdemo;
public class ProductService{
private readonly HttpClient client;
private readonly JsonSerializerOptions option;
public ProductService(HttpClient httpClient,JsonSerializerOptions optionsJson){
client=httpClient;
option=optionsJson;
}
public async Task<List<Product>?> Get(){
var response=await client.GetAsync("/v1/product");
return await JsonSerializer.DeserializeAsync<List<Product>>(await response.Content.ReadAsStreamAsync());
}
public async Task Add(Product product){
var response=await client.PostAsync("v1/products", JsonContent.Create(product));
var content= await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
{
throw new ApplicationException(content);
}
}
public async Task Delete(int productId){
var response=await client.DeleteAsync($"v1/products/{productId}");
var content= await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
{
throw new ApplicationException(content);
}
}
}
category.cs
using System.Text.Json;
namespace blazorappdemo;
public class CategoryService{
private readonly HttpClient client;
private readonly JsonSerializerOptions option;
public CategoryService(HttpClient httpClient){
client=httpClient;
option=new JsonSerializerOptions{PropertyNameCaseInsensitive =true};
}
public async Task<List<Category>?> Get(){
var response=await client.GetAsync("/v1/Categories");
var content= await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
{
throw new ApplicationException(content);
}
return JsonSerializer.Deserialize<List<Category>>(content,option);
}
}
Si por alguna razon a alguien le genera error el <List<Product>?>, es poor que falta el using que llama la carpeta Models, ejemplo:
using BlazorAppVisualStudio.Models;
Category.cs
namespace blazorappdemo;
public class Category{
public int Id {get;set;}
public string Name {get;set;}
public string? image {get;set;}
}
public class Product{
public int Id {get;set;}
public string title {get;set;}
public decimal? price {get;set;}
public string Description {get;set;}
public int CategoryId {get;set;}
public string[] Images {get;set;}
public string? image {get;set;}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?