Introducción: REST API en C# — es rápido y sencillo
El desarrollo de aplicaciones web modernas y servicios móviles es imposible sin REST API. Si quieres crear rápidamente un backend para tu proyecto, C# con el framework ASP.NET Core es la elección ideal. Gracias a las herramientas integradas, la configuración mínima y el excelente rendimiento, puedes escribir un REST API completo en solo 30 minutos.
En este artículo, analizaremos el proceso de creación de una API simple para gestionar una lista de tareas (Todo List). Aprenderás cómo configurar el proyecto, crear modelos de datos, implementar controladores con operaciones CRUD y probar la API con Swagger. Todos los ejemplos de código están escritos en C# (.NET 8).
Incluso si eres principiante en C#, siguiendo las instrucciones, obtendrás una API funcional al final del artículo.
1. Creación del proyecto y configuración del entorno
Lo primero es asegurarte de que tienes instalado el .NET SDK (versión 8 o superior). Puedes descargarlo desde el sitio oficial. Después de la instalación, abre la terminal o la línea de comandos.
Crea un nuevo proyecto ASP.NET Core Web API con el comando:
dotnet new webapi -n TodoApicd TodoApiEste comando creará una carpeta TodoApi con la estructura básica del proyecto. Ya contiene el archivo Program.cs — el punto de entrada, y la carpeta Controllers para los futuros controladores.
Abre el proyecto en Visual Studio, Visual Studio Code o Rider. Para simplificar, puedes usar cualquier editor de texto.
Asegúrate de que en el archivo Program.cs estén presentes las llamadas AddSwaggerGen() y UseSwagger(). Swagger está incluido automáticamente en la plantilla — esto facilitará las pruebas. Si no está, agrégalo:
builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();// ...app.UseSwagger();app.UseSwaggerUI();2. Creación del modelo de datos y almacenamiento temporal
Para nuestra API, almacenaremos las tareas en la memoria RAM (in-memory). En un proyecto real, conectarías una base de datos, pero para demostrar una solución de 30 minutos, esto es suficiente.
Crea una carpeta Models y dentro el archivo TodoItem.cs:
public class TodoItem{ public int Id { get; set; } public string Title { get; set; } = string.Empty; public bool IsCompleted { get; set; }}Ahora crearemos un servicio-repositorio simple. En la carpeta Services, crea la interfaz ITodoService.cs y su implementación TodoService.cs. Esto permitirá cambiar fácilmente a una base de datos real en el futuro.
ITodoService.cs:
public interface ITodoService{ List<TodoItem> GetAll(); TodoItem? GetById(int id); TodoItem Create(TodoItem item); TodoItem? Update(int id, TodoItem item); bool Delete(int id);}TodoService.cs:
public class TodoService : ITodoService{ private readonly List<TodoItem> _items = new(); private int _nextId = 1;
public List<TodoItem> GetAll() => _items;
public TodoItem? GetById(int id) => _items.FirstOrDefault(i => i.Id == id);
public TodoItem Create(TodoItem item) { item.Id = _nextId++; _items.Add(item); return item; }
public TodoItem? Update(int id, TodoItem item) { var existing = GetById(id); if (existing == null) return null; existing.Title = item.Title; existing.IsCompleted = item.IsCompleted; return existing; }
public bool Delete(int id) { var item = GetById(id); if (item == null) return false; return _items.Remove(item); }}Registra el servicio en el contenedor DI en Program.cs:
Blogs
Book Recommendations
Leer también