Ejemplo básico de API para ofrecer las operaciones CRUD para una entidad "User" en .Net Core (C#):
using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace UserApi.Controllers { [ApiController] [Route("api/[controller]")] public class UserController : ControllerBase { private readonly AppDbContext _context; public UserController(AppDbContext context) { _context = context; } /// <summary> /// Obtiene todos los usuarios. /// </summary> [HttpGet] public async Task<ActionResult<IEnumerable<User>>> GetUsers() { return await _context.Users.ToListAsync(); } /// <summary> /// Obtiene un usuario por su ID. /// </summary> /// <param name="id">ID del usuario.</param> [HttpGet("{id}")] public async Task<ActionResult<User>> GetUserById(int id) { var user = await _context.Users.FindAsync(id); if (user == null) { return NotFound(); } return user; } /// <summary> /// Crea un nuevo usuario. /// </summary> /// <param name="user">Datos del usuario a crear.</param> [HttpPost] public async Task<ActionResult<User>> CreateUser(User user) { _context.Users.Add(user); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(GetUserById), new { id = user.Id }, user); } /// <summary> /// Actualiza los datos de un usuario existente. /// </summary> /// <param name="id">ID del usuario a actualizar.</param> /// <param name="updatedUser">Datos actualizados del usuario.</param> [HttpPut("{id}")] public async Task<IActionResult> UpdateUser(int id, User updatedUser) { if (id != updatedUser.Id) { return BadRequest(); } _context.Entry(updatedUser).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } /// <summary> /// Elimina un usuario por su ID. /// </summary> /// <param name="id">ID del usuario a eliminar.</param> [HttpDelete("{id}")] public async Task<IActionResult> DeleteUser(int id) { var user = await _context.Users.FindAsync(id); if (user == null) { return NotFound(); } _context.Users.Remove(user); await _context.SaveChangesAsync(); return NoContent(); } private bool UserExists(int id) { return _context.Users.Any(e => e.Id == id); } } public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } } public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<User> Users { get; set; } } }