EAS Latam Academy Logo EAS Latam

Módulo 1: C# Web APIs con ASP.NET Core

Introducción a las Web APIs con ASP.NET Core

Este módulo te introduce al mundo del desarrollo de Web APIs robustas y escalables utilizando ASP.NET Core. Aprenderás a diseñar y construir servicios RESTful que actúen como el ‘backend’ de tus aplicaciones, exponiendo datos y funcionalidades a través de HTTP.

¿Qué es ASP.NET Core?

ASP.NET Core es un framework de código abierto y multiplataforma para construir aplicaciones modernas basadas en la web y servicios en la nube. Es rápido, flexible y se integra bien con tecnologías frontend.

Conceptos Clave de las Web APIs RESTful

Una Web API RESTful se basa en los principios de la arquitectura REST (Representational State Transfer). Los puntos clave incluyen:

  • Recursos: Todo en la API se trata como un recurso (ej. /productos, /usuarios).
  • URIs: Identificadores únicos para cada recurso (ej. GET /productos/1).
  • Verbos HTTP: Acciones que se realizan sobre los recursos (GET para obtener, POST para crear, PUT/PATCH para actualizar, DELETE para eliminar).
  • Representaciones: Los datos se envían y reciben en formatos como JSON o XML.

Construyendo tu Primera API

Controladores (Controllers)

En ASP.NET Core, los controladores son clases que manejan las solicitudes HTTP entrantes.

[ApiController]
[Route("[controller]")]
public class ProductosController : ControllerBase
{
    // GET /productos
    [HttpGet]
    public ActionResult<IEnumerable<Producto>> Get()
    {
        // Lógica para obtener todos los productos
        return Ok(new List<Producto>());
    }

    // GET /productos/{id}
    [HttpGet("{id}")]
    public ActionResult<Producto> Get(int id)
    {
        // Lógica para obtener un producto por ID
        return Ok(new Producto { Id = id, Nombre = "Ejemplo" });
    }
}

Modelos (Models)

Define la estructura de tus datos.

public class Producto
{
    public int Id { get; set; }
    public string Nombre { get; set; }
    public decimal Precio { get; set; }
}

Rutas (Routing)

ASP.NET Core utiliza un sistema de enrutamiento para mapear las solicitudes HTTP a las acciones de los controladores. [Route("[controller]")] y [HttpGet("{id}")] son ejemplos de enrutamiento basado en atributos.

Manejo de Datos y Servicios

Las APIs rara vez trabajan directamente con los datos en el controlador. Se utilizan servicios para separar la lógica de negocio y acceder a la capa de datos.

public interface IProductoService
{
    IEnumerable<Producto> GetAll();
    Producto GetById(int id);
}

public class ProductoService : IProductoService
{
    public IEnumerable<Producto> GetAll()
    {
        // Lógica para acceder a la base de datos o repositorio
        return new List<Producto> { new Producto { Id = 1, Nombre = "Test" } };
    }

    public Producto GetById(int id)
    {
        // Lógica para acceder a la base de datos o repositorio
        return new Producto { Id = id, Nombre = "Encontrado" };
    }
}

Luego, inyectas el servicio en tu controlador (Inyección de Dependencias).

public class ProductosController : ControllerBase
{
    private readonly IProductoService _productoService;

    public ProductosController(IProductoService productoService)
    {
        _productoService = productoService;
    }

    [HttpGet]
    public ActionResult<IEnumerable<Producto>> Get()
    {
        return Ok(_productoService.GetAll());
    }
}

Conclusión

En este módulo, has aprendido los fundamentos para construir Web APIs con ASP.NET Core, incluyendo controladores, modelos, enrutamiento y la importancia de la separación de preocupaciones con servicios. Este es el primer paso para crear un backend robusto para tus aplicaciones fullstack.

¿Listo para el desafío?

Has revisado la teoría. Ahora es momento de poner a prueba tus conocimientos.

Iniciar Desafío