2.5 Estructura de los Proyectos .Net Core

Al crear un nuevo proyecto web de .NET Core te crea la siguiente estructura

Archivo/Carpeta

Descripción

Controllers

Contiene los controladores. Son clases para crear los servicios REST básicos

ValuesController.cs

Archivo de ejemplo con un servicio REST llamado values que regresa un arreglo con 2 valores

wwwroot

Contiene los archivos estáticos como imágenes, css, javascripts.

appsettings.json

Te permite configurar aspectos básicos de tu aplicación como la cadena de conexión a tu base de datos, log de errores, seguridad, propiedades personalizadas, 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 GET del controlador values el cual regresa un arreglo con 2 valores.

Entendiendo el servicio de ejemplo

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

[Route("api/[controller]")]

Esta instrucción indica como se forma la url para acceder a los servicios. Se formara por la url base mas la palabra api (por estándar todos los servicios REST estan dentro del segmento de la URL api) mas [controller] este texto se sustituye por el nombre del archivo sin la palabra controller, en este caso se remplazara por la palabra Values ya que el archivo se llama ValuesController. Asi la url es http://localhost:44347/api/Values

[ApiController]

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

public class ValuesController : ControllerBase

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

Obtener todos los registros

[HttpGet] public ActionResult<IEnumerable<string>> Get()

Los métodos del servicio se ponen entre corchetes arriba de cada función. En este caso el método es GET. ActionResult indica que se regresará alguno de los posibles estados de resultado con un arreglo de strings. Ejemplo 200 (Ok)

Para crear un servicio para consultar un solo registro, 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 comúnmente utilizados.

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