Análisis del template para APIs de .NET
Clase 7 de 22 • Curso de APIs con .NET
Contenido del curso
Clase 7 de 22 • Curso de APIs con .NET
Contenido del curso
Samuel David Salcedo Enciso
Platzi Team
Héctor Manuel López García
Andres David Peña Velandia
Carlos Madrigal Ramos
kevin adonias quiej yancoba
Andrea Ruíz
Miguel Teheran
EDWIN MARTÍNEZ
Gabriel Antonio Vallejo Loaiza
Miguel Teheran
J Maycol Valencia
Brian Molina
Jose Luis Ayala Pinto
Eduardo Alejandro Vázquez Olvera
Wilson Bienvenido Otaño Mateo
Hans González
Junier Ayala Perez
Jorge Luis Paiva Huamán
Miguel Teheran
Carlos Andrés Castro Moreno
Miguel Teheran
Arturo Ventura Martínez
ROMMEL DUAREZ SAENZ
Rubian Esteban Ruiz Ospina
Giovanni Alzate
Juan Fonseca
Javier Serrano Beltrán
Camilo Velasco Rueda
Antonio García
Antonio García
Empezando a trabajar en backend para aplicaciones web, este curso es la esencial
Análisis del template para APIs de .NET
Cuando ejecutamos el comando dotnet new webapi el CLI de dotnet nos crea un proyecto listo para ejecutar y realizar pruebas, veamos que contiene este proyecto.
!Untitled
Program.cs: Este archivo contiene la clase principal del programa, que es el punto de entrada para la aplicación. También contiene la lógica para iniciar el host de la aplicación y configurar el enrutamiento.Controllers: Este directorio contiene los controladores de la API. Cada controlador es responsable de manejar una o varias solicitudes HTTP y devolver una respuesta.appsettings.json: Este archivo contiene la configuración de la aplicación, como las opciones de conexión a la base de datos y las opciones de configuración personalizadas.Properties: Este directorio contiene información sobre el proyecto, como la información de versión y la información de compilación.Models: Este directorio contiene los modelos de datos utilizados por la API. Los modelos representan los datos que se manejan en la API, como los recursos que se están exponiendo.Patron MVC
MVC es el acrónimo de Model-View-Controller, que es un patrón de arquitectura de software utilizado en desarrollo de aplicaciones. Se utiliza para separar la lógica de negocios, la lógica de presentación y la lógica de control en componentes independientes.
Patron MXC en Nuestra API
En el template de proyecto *Web API en .NET*, la arquitectura MVC se aplica para separar la lógica de la aplicación en diferentes componentes sin hacer uso de las Vistas:
Models.Controllers.MVC
MXC
Al momento de poner el comando en la terminal, va a crear la ultima versión disponible del .net, en mi caso me creó la 7.0, entonces el comando para que se cree con la versión requerida es:
dotnet new webapi --framework net6.0
Para el caso anterior ya se creará con la versión de .net 6.0
Muy probablemente con .Net 7 te funcine sin problemas. Debes tener en cuenta la version que estas usando a la hora de instalar paquetes.
cuando haces esto por defecto, el CLI de .NET se configura a la versión 7 mofificando el SDK globalmente, si tienes este problema, mira las versiones del SDK instalados en tu maquina y Migra a la version 6 con este comando :
<dotnet new globaljson --sdk-version 6.0.413>
de esta manera volveras a la version 6 y podras crear tus aplicaciones en .NET 6 nuevamente.
Sin fijarme estoy trabajando con NET 5. Una pregunta, con NET 6 porque ya no se crea el startup.cs?
Se unificaron para simplificar el código usando las ultimas mejoras de C#. La idea de .NET es moverse hacia lo simple y de esta manera sea adoptado por nuevos desarrolladores
Buen dia, y la configuracion de iissetting que significa cada opcion?
"iisSettings": { "windowsAuthentication": false, // si se utilizará autenticación de windows "anonymousAuthentication": true, //habilita autenticación anonima "iisExpress": { "applicationUrl": "localhost:27447", // URL base cuando inicie "sslPort": 44338 // puerto para HTTPs }
Si estas usando .NET 8 y no te aparece por defecto el link con protocolo https , puedes usar el comando :
dotnet run --launch-profile https
para cargar la configuración del protocolo.
El patron es :
Model = Datos
View = interfaz de usuario
Controller= lógica
pero el template del API omite la vista y solo genera
Model = Datos
Controller= lógica
No sé si es por el tiempo, pero ya no genera la carpeta de controllers.
Yo tambien observe lo mismo y la sintaxis del archivo .cs tambien cambia
Eso es porque ahora por defecto crea un minimal API en lugar de un full API, en clases posteriores (3 clases mas) se muestra la diferencia entre minimal y full api, en efecto hacen lo mismo
En esta parte es importante para conocer un buen backend segun en este modelo. Con la api podemos crear toda la logica abstracta pero la parte de vista podemos hacer rest con otras framework para consumir las respuestas
Recomendaría usar Visual Studio directamente si lo tienes instalado ya que este esta específicamente optimizado para trabajar c#
Un API desarrollado en net6 podria ser ejecutado sólo con net 7?
.NET es retro compatible enotnces las versiones posteriores de .NET pueden c´doigo que este apuntando a versiones anteriores del framework
Una pregunta, tengo entendido que estas AIP's se pueden consumir tambien desde aplicaciones de escritorio creadas com XAML, existe algun material que me recomienden sobre el tema? Muchas gracias. ;)
La idea es .NET es utiliza la librería HttpClient para llamar cualquier API, es la misma que se usa en cualquier tecnología sea blazor, ASP .NET etc... aca un ejemplo con WPF que son las apps que usan XAML https://www.c-sharpcorner.com/article/crud-web-api-service-call-function-in-wpf-application/
segun chatgpt si existe la "vista" en web api. alguien me saca de la duda xd
En el contexto de un servicio REST, la "vista" no se refiere necesariamente a una interfaz de usuario como lo haría en una aplicación web MVC tradicional. En su lugar, la vista en un servicio REST podría interpretarse como la representación de los datos que se envía como respuesta a una solicitud HTTP. Esto puede ser JSON, XML u otro formato.
son 2 interpretaciones diferentes de vista
La vista de una REST es el DTO, no?
Los DTOS Son capas que encapsulan los datos del Modelo, por ejemplo muchas veces no le queremos mostrar todos los datos de un servidor a un usuario lo cual lo encapsulamos en dtos
Realmente este template cumple con MVC ya que usa swagger, el cual cumple el rol de vista :P
Hola,
Recientemente (Septiembre 2024) realicé el curso, mi máquina tenía instalado .Net 8.0 y el comando
dotnet new webapi ```No cargó la estructura MXC, asi que intenté hacerlo con versiones anteriores de net y funcionó, quedó así:  ```js dotnet new webapi --framework net7.0 ```Ahí cargó tal cuál lo está mostrando el profesor. De hecho en la versión Net 8.0 dice que la librería: Microsoft.AspNetCore.Mvc está obsoleta. Cordial saludo
no me creo la carpeta de controladores