Doplax.Dev
  • Home
  • About me
  • Blog
  • Work Experience
  • Contact
  • Home
  • About me
  • Blog
  • Work Experience
  • Contact

Got a project in mind or just want to say hi?

Get in touch

© 2026 Doplax.Dev — All rights reserved.

July 15, 2025

Como crear API REST con .NET 8

  • .NET





Introducción a .NET

Nombres

Completo

Tu descripción sobre las versiones de .NET y los frameworks asociados es esencialmente correcta, pero puedo ofrecerte más detalles y sugerir algunas tecnologías adicionales que son importantes en este contexto.

.NET Framework - 2002

El .NET Framework fue lanzado por Microsoft en 2002 como una plataforma para desarrollar y ejecutar aplicaciones en Windows. Esta versión incluye ASP.NET, que es un framework diseñado para la creación de aplicaciones web en .NET Framework. El .NET Framework es conocido por su integración con Windows y sigue siendo utilizado principalmente para aplicaciones de escritorio y servicios empresariales en entornos Windows.

.NET Core - 2016

.NET Core fue introducido en 2016 como una versión modular y multiplataforma de .NET. Está diseñado para ser ligero, con soporte para sistemas operativos como Linux y macOS, además de Windows. .NET Core es la base de ASP.NET Core, que es la versión moderna y multiplataforma de ASP.NET, utilizada para crear aplicaciones web y servicios que pueden ejecutarse en diferentes plataformas.

.NET (anteriormente conocido como .NET 5) - 2020

En 2020, Microsoft unificó .NET Framework y .NET Core bajo una única plataforma llamada simplemente .NET, comenzando con .NET 5. Esta versión representa una fusión de lo mejor de .NET Framework y .NET Core, ofreciendo una única plataforma para desarrollar aplicaciones para escritorio, web, móvil, nube, y más. A partir de .NET 5, ASP.NET Core se convirtió en la opción predeterminada para el desarrollo web en esta plataforma.

Frameworks para desarrollo de aplicaciones web:

  • ASP.NET: Diseñado originalmente para trabajar con .NET Framework, ASP.NET es un framework robusto para el desarrollo de aplicaciones web en Windows. Utiliza tecnologías como Web Forms y MVC para la creación de interfaces web y APIs.
  • ASP.NET Core: Este es un framework moderno, modular, y multiplataforma para el desarrollo de aplicaciones web y servicios. Aunque fue diseñado para .NET Core, también puede ejecutarse en .NET Framework (en versiones anteriores a ASP.NET Core 3.0). ASP.NET Core ofrece características avanzadas como integración con contenedores Docker, soporte para microservicios, y un pipeline HTTP optimizado para alto rendimiento.

Sugerencias adicionales:

  • .NET Standard: Especificación que define un conjunto común de APIs que deben estar disponibles en todas las implementaciones de .NET, como .NET Framework, .NET Core y Xamarin. Esto facilita la creación de bibliotecas reutilizables en diferentes plataformas .NET.
  • Blazor: Una tecnología relativamente nueva dentro de ASP.NET Core que permite desarrollar aplicaciones web interactivas utilizando C# en lugar de JavaScript. Blazor soporta tanto aplicaciones del lado del servidor como del lado del cliente (WebAssembly).

.NET Framework - 2002

.NET Core 2016

.NET -2020


Framework para desarollo de aplicaciones web:

  • ASP.NET ⇒ Diseñado para trabajar con .Net Framework
  • ASP.NET Core (.Net Core)



Creación del Proyecto


image.png





Archivo del Proyecto

.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <!-- Grupo de propiedades generales del proyecto -->
  <PropertyGroup>
    <!-- Define el framework objetivo del proyecto. En este caso, .NET 8.0 -->
    <TargetFramework>net8.0</TargetFramework>
    
    <!-- Habilita las referencias nullable en el código C# -->
    <Nullable>enable</Nullable>
    
    <!-- Habilita la adición implícita de directivas 'using' para namespaces comunes -->
    // El compilador agregara los usings por nosotros, similar a los imports en node
    <ImplicitUsings>enable</ImplicitUsings>
    
    <!-- Configura el proyecto para utilizar la globalización invariante -->
    <InvariantGlobalization>true</InvariantGlobalization>
  </PropertyGroup>

  <!-- Grupo de elementos que incluye referencias a paquetes NuGet -->
  <ItemGroup>
    <!-- Incluye el paquete Swashbuckle.AspNetCore versión 6.4.0 -->
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
  </ItemGroup>

</Project>


Que es Nuget:

Sistema de Gestión de paquetes (el NPM)

NewGet



Archivo Program.cs

Representa la entrada principal del programa, se cofigura y ejecuta la aplicación

// Inicializa un constructor para la aplicación web ASP.NET Core, configurando la aplicación con las opciones de configuración y argumentos de línea de comandos.
var builder = WebApplication.CreateBuilder(args); 

// Registra el servicio de controladores en el contenedor de servicios, permitiendo el uso de controladores para manejar solicitudes HTTP.
builder.Services.AddControllers(); 

// Habilita la exploración de endpoints para generar documentación de API.
builder.Services.AddEndpointsApiExplorer(); 

// Agrega el servicio Swagger para generar documentación interactiva de la API en formato OpenAPI.
builder.Services.AddSwaggerGen(); 

// Crea una instancia de la aplicación web con la configuración y los servicios registrados anteriormente.
var app = builder.Build(); 


// Verifica si el entorno es de desarrollo para configurar el pipeline de solicitudes HTTP adecuadamente.
if (app.Environment.IsDevelopment()) 
{
    // Habilita la generación de la documentación Swagger en entorno de desarrollo.
    app.UseSwagger(); 
    
    // Habilita la interfaz gráfica de Swagger para visualizar y probar los endpoints de la API.
    app.UseSwaggerUI(); 
}

// Fuerza que todas las solicitudes HTTP se redirijan a HTTPS para asegurar la comunicación segura.
app.UseHttpsRedirection(); 

// Agrega el middleware de autorización, asegurando que solo los usuarios autorizados puedan acceder a los recursos protegidos.
app.UseAuthorization(); 

// Configura las rutas para los controladores, permitiendo que la aplicación maneje las solicitudes entrantes en función de los controladores definidos.
app.MapControllers(); 

// Inicia la aplicación y la pone en marcha para que empiece a escuchar solicitudes HTTP.
app.Run();


Probando controller por defecto

Para arrancar la app en modo de desarollo:

image.png

Veremos que tenemos el controlador WeatherForecastController, el cual genera datos de manera aleatoria los datos

Respuesta

[
  {
    "date": "2024-08-11",
    "temperatureC": 4,
    "temperatureF": 39,
    "summary": "Hot"
  },
  {
    "date": "2024-08-12",
    "temperatureC": 2,
    "temperatureF": 35,
    "summary": "Scorching"
  },
  {
    "date": "2024-08-13",
    "temperatureC": -13,
    "temperatureF": 9,
    "summary": "Sweltering"
  },
  {
    "date": "2024-08-14",
    "temperatureC": 5,
    "temperatureF": 40,
    "summary": "Cool"
  },
  {
    "date": "2024-08-15",
    "temperatureC": 41,
    "temperatureF": 105,
    "summary": "Warm"
  }
]




Modelo

Creamos la Carpeta







Paquete Entity Framework





Contexto

Creamos carpeta Context



UNa vez creada, debemos hacer que nuestra clase herede de DbContext:

image.png

Db Context, que es?

Es un ORM facilita el acceso y manipulacion de bases de datos.

Representa una sesión de trabajo en nuestra Base de datos

Se usa para hacer operaciones de crud en los datos que estan almacenados.


Proporciona un conjunto de APIs para manipular los datos:

los metodos más comunes son

find ,set, get …[gpt]




Creamos el Constructor:

Para inicializar el contexto de la base de datos



DB Set, que es?

DB Connection - Conexión a la base de datos


Ejemplo SmartYard

Untitled.png

El nombre lo elegimos nosotros

Untitled.png




image.png

Paquete Entity FrameWork Core SQL Server

Vamos a NuGet

Untitled.png


Ahora tenemos que crear una variable en Program.cs

image.png

Con esto ya tendriamos registrado nuestro servicio

Paquete Entity Framework Core Tools

Sirve para que podamos ejecutar nuestras migraciones

image.png


Abriremos la consola del administrador de paquetes, Esta consola es distinta al CMD

Untitled.png



Usaremos el Comando Add-Migration Initial

image.png


Si sale bien, Esto creara una carpeta en nuestro proyecto que se va a llamar Migration

Untitled.png

Y dentro encontraremos:

Untitled.png

Tenemos 2 Métodos, Up y Down

(En Up, están las instrucciones para crear la tabla en la base de datos)

los datos que aparecen son tomados de nuestro modelo


Ahora tenemos que reflejar todos estos datos en la base de datos, para ello usaremos el comando:

Untitled.png

Si da un error cambiar esta propiedad a false:

Untitled.png


DB Desde SQL Server Managment Studio





Untitled.png

La tabla EFMigrationsHistory contiene un historial de las migraciones que vamos añadiendo o eliminando

Untitled.png






Untitled.png

Pero ahora mismo no hay nada dentro




Controlador

En la carpeta Controllers:

Untitled.png

Untitled.png

Untitled.png

y se crea PresonController automaticamente tomando el modelo con las operaciones CRUD básicas

Untitled.png


Esto es una ami minima, lo que deberiamos hacer es separar la responsabilidad por capas donde separar la logica del modelo…



Probando nuestra API

hasta aqui ya tendriamos una apli completa funcionando con Swagger


Vamos a crear un registro:

Untitled.png


Untitled.png









Otros:

Crear solución en un project existente: Desde el visor de soluciones (dando doble click a .sln)


Si no compila bien

  • En la barra superior:
  • Ejecuta:
powershell
CopiarEditar
dotnet restore
image.png















PreviousCómo Transcribir Audio a Texto Gratis con Inteligencia ArtificialNextComo hacer un console.log() en .NET

Related posts

  • Como cargar variables de entorno de .env en .NET.NET
  • Cómo Configurar la Expiración de Contraseñas de Usuario en .NET.NET

Written by Pol Valle

Written by Pol Valle

I'm particularly drawn to building apps that are not only functional but also visually appealing and easy to use. I do it by applying SOLID principles, clean architecture and testing to ensure quality.