2.5 Estructura de los Proyectos .Net Core

Al crear un nuevo proyecto web de .NET Core te crea la siguiente estructura (Cuando no es minimal api, se verá en un capítulo adicional)

Archivo/Carpeta

Descripción

Controllers

Contiene los controladores. Son clases para crear los servicios REST

WeatherForecastController.cs

Archivo de ejemplo con un servicio REST que te regresa diferentes climas en grados Farenheit y Celsius

appsettings.json

Te permite configurar aspectos básicos de tu aplicación como la cadena de conexión a tu base de datos, que tipo de logs deseas guardar (errores, seguridad) propiedades de configuración, etc.

Program.cs

Los proyectos de .NET Core son un programa de consola que crea un servidor web. En este programa se define como iniciar el servidor web.

Startup.cs

Permite configurar los servicios disponibles, como los servicios Rest, la base de datos, seguridad, documentación.

Al correr tu proyecto te muestra el servicio con swagger. Si le das clic en Try it out puedes probar el servicio

Entendiendo el servicio de ejemplo

A continuación explicare el contenido del archivo WeatherForecastController el cual contiene la estructura básica que siguen los servicios REST.

[ApiController]

Indica que se trata de un controller API por lo que los servicios regresan las respuestas estándar de los servicios.

[Route("[controller]")]

Esta instrucción indica como se forma la url para acceder a los servicios. Se formara por la url donde corre tu servicio mas el nombre del [controller]. Este texto se sustituye por el nombre del archivo sin la palabra controller, en este caso se remplazara por la palabra WeatherForecast ya que el archivo se llama WeatherForecastController. Asi la url es https://localhost:5001/WeatherForecast

public class WeatherForecastController : ControllerBase

La clase ControllerBase es propia de .NET y contiene la información básica de controladores MVC

Obtener todos los registros

[HttpGet]
public IEnumerable<WeatherForecast> Get()

Los métodos del servicio se ponen entre corchetes arriba de cada función. En este caso el método es GET, que regresará una lista de objetos WeatherForecast.

Para crear un servicio para consultar un solo registro, en los parámetros a recibir en la url se indica con el nombre del parámetro entre llaves por ejemplo {id} y en la función el nombre del parámetro debe coincidir, como se ve en el ejemplo

Obtener un registro

[HttpGet("{id}")]
public ActionResult<string> Get(int id)

Insertar

Para insertar el metódo es HttPost y los datos del registro a insertar se reciben en el body de la petición. En este ejemplo el parámetro es un string. En el caso de un cliente se recibe el objeto Cliente.

[HttpPost] 
public void Post([FromBody] string value)

Modificar

Para modificar el método es HttpPut recibiendo como parámetro el id del registro a modificar. Los datos del registro a modificar se reciben en el body de la petición

[HttpPut("{id}")] 
public void Put(int id, [FromBody] string value)

Borrar

Para borrar un registro el método es HttpDelete recibiendo como parámetro el Id del registro a borrar.

[HttpDelete("{id}")] 
public void Delete(int id)

Este archivo de ejemplo te muestra como crear los 5 servicios mas comunes.

En la siguiente lección crearemos el primer servicio ya con conexión a una base de datos de MySQL.

Last updated