Ticker

6/recent/ticker-posts

Crear Web API en ASP.NET con ADO.Net usando VS 2019 Método Put - Fase IV

Hola nuevamente, continuamos con la implementación de Web API con ADO.Net, en esta fase revisaremos e implementaremos el método PUT con el fin de actualizar los registros ya insertados en la base de datos, recordar que se viene haciendo uso de las base CRUD - Base de Datos con Microsoft SQL Server 2019 donde se crearon todos los procedimientos almacenados en relación a este serie de articulo que se viene revisando que tiene relación a la base de datos BD_TEST.

Como ya es conocido el método PUT se utiliza para actualizar por completo un registro existente ingresado con anterioridad a una base de datos, es decir, es parecido a realizar un UPDATE directamente en la base de datos con la diferencia que este caso es el cliente quien especifica el URI del recurso que es enviado en el cuerpo de la solicitud que contiene una representación completa del recurso.

Al igual que el método PUT existe el método PATCH que realiza la misma acción de actualizar, con la diferencia que actualiza sólo la información que se le envía.


Lo que veremos en este articulo:

  • Requisitos.
  • Paso 1: Implementar el método UpdateUsers en el proyecto Data.Access.
  • Paso 2: Invocar el método UpdateUsers en el proyecto WebApi.Data.Business
  • Paso 3: Invocar el método UpdateUsers en el proyecto WebApi.Domain.
  • Paso 4: Implementar el método PUT en el proyecto WebApi.
  • Paso 5: Testear el método PUT desde Postman.
  • Conclusión:

Requisitos:

  1. Microsoft Visual Studio Community 2019
  2. .Net Framework 4.6
  3. ADO.Net (tecnología para la conexión a datos)
  4. Microsoft SQL Server 2019 Express
  5. T-SQL (Lenguaje transaccional para SQL)
  6. Postman

Paso 1: Implementar el método UpdateUsers en el proyecto Data.Access:

Recordemos que la Fase II y III ya se agregaron las referencias System.ConfigurationSystem.Data y System.Data.Cliente e importamos las 3 referencia desde en la clase UsuarioDAL.cs con el fin de acceder a la base de datos y realizar la actualiza a través de procedimiento alamacenado implementado en el articulo del CRUD con SQL Server 2019; seguidamente implementamos el método UpdateUsers con el fin de invocar en todas las capas de nuestra solución y finalmente invocar e implementar el método POST están en el proyecto WebApi.

Recordemos que debes tener las mis consideraciones de hacer uso del ConnectionStringsSection, SqlCommand, SqlConnection y finalmente ejecutar el comando ExecuteNonQuery para lograr la actualización de los registros.

Para logra la actualización pasamos 2 parámetros de entrada:

  1. Uno de ellos es el  ID en referencia al tipo dato autogenerado como fin de hacer el match en la base de datos.
  2. Seguidamente pasamos el modelo usuario "usuarioModel" con el fin de actualizar los datos.

using System;

using System.Collections.Generic;

 

//Importar para acceder al poryecto Models y directio Usuario

using ArquitecturaWebApi.Models.Usuario;

 

using System.Configuration;

using System.Data.SqlClient;

using System.Data;

 

namespace ArquitecturaWebApi.Data.Access.DAL

{

    public class UsuarioDAL

    {

        public static int UpdateUsers(int id, UsuarioModel usuarioModel)//Como parámetro de entrada enviamos el id y la lista de modelo UsuarioModel

        {//Acceder al archivo de configuración para ller la cadena de conexión

            string cs = ConfigurationManager.ConnectionStrings["CnBD"].ConnectionString;

 

            int result;

            using (SqlConnection con = new SqlConnection(cs))//Inicio la conexión a la base de datos

            {

                con.Open();//Abrimos la conexión a la base de datos

                SqlCommand com = new SqlCommand("SP_ACTUALIZAR_USUARIO", con);//Definimos el procedimiento a ejecutar

                com.CommandType = CommandType.StoredProcedure;//Comando de tipo procedimiento almacenado

 

                //Agregamos y hacemos match los parametros definidos

                com.Parameters.Add("@usuario", SqlDbType.VarChar, 50).Value = usuarioModel.usuario;

                com.Parameters.Add("@contrasena", SqlDbType.VarChar, 50).Value = usuarioModel.contrasena;

                com.Parameters.Add("@intentos", SqlDbType.Int, 5).Value = usuarioModel.intentos;

                com.Parameters.Add(new SqlParameter("@nivelSeg", SqlDbType.Decimal)

                {

                    Precision = 18,

                    Scale = 0

                }).Value = usuarioModel.nivelSeg;

                com.Parameters.Add("@id", SqlDbType.Int, 5).Value = id;

 

                result = com.ExecuteNonQuery();//Ejecuto y comando y actulizo los datos

            }

            return result;// Captura la lista de la identidad

        }

    }

}

Paso 2: Invocar el método UpdateUsers en el proyecto WebApi.Data.Business:

Ahora invocamos el método UpdateUsers(int id, UsuarioModel usuarioModel) que acabamos de implementar en el proyecto Data.Acces.

sing System;

using System.Collections.Generic;

//Importar los poryectos Models y Data.Access, para acceder al directorio Usuario y DAL

using ArquitecturaWebApi.Models.Usuario;

using ArquitecturaWebApi.Data.Access.DAL;

 

namespace ArquitecturaWebApi.Data.Business

{

    public class Usuario

    {       

        public static int UpdateUsers(int id, UsuarioModel usuarioModel)

        {

            try

            {

                return UsuarioDAL.UpdateUsers(id, usuarioModel);

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

    }

}

Paso 3: Invocar el método UpdateUsers en el proyecto WebApi.Domain:

Seguidamente invocamos el método UpdateUsers(int id, UsuarioModel usuarioModel) que acabamos de implementar en el proyecto Data.Business.

using System;

using System.Collections.Generic;

//Importar para acceder al proyecto Models y directorio Usuario, adempas importar el proyecto Data.Business

using ArquitecturaWebApi.Models.Usuario;

using ArquitecturaWebApi.Data.Business;

 

namespace ArquitecturaWebApi.Domain

{

    public class UsuarioDomain

    {

        public int UpdateUsers(int id, UsuarioModel usuarioModel)

        {

            try

            {

                return Usuario.UpdateUsers(id, usuarioModel);

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

    }

}

Paso 4: Implementar el método PUT en el proyecto WebApi:

La implementación de este método PUT se logrará en base a la invocación al método UpdateUsers. Recordemos que ya se agregaron las referencias e importardas (desde el code behind) los proyectos de ArquitecturaWebApi.Models y ArquitecturaWebApi.Domain.

        /// <summary>

        /// Método PUT con el fin de actualizar los datos

        /// </summary>

        /// <param name="id"></param>

        /// <param name="usuarioModel"></param>

        /// <returns></returns>

        public HttpResponseMessage Put(int id, [FromBody]UsuarioModel usuarioModel)

        {

            HttpResponseMessage httpMsg = null;

            try

            {

                UsuarioModel usuario = new UsuarioModel();

                usuario.usuario = usuarioModel.usuario;

                usuario.contrasena = usuarioModel.contrasena;

                usuario.intentos = usuarioModel.intentos;

                usuario.nivelSeg = usuarioModel.nivelSeg;

                usuario.id = id; 

                usuarioDomain.UpdateUsers(id, usuario);//Invocamos el proceso actualizar en base los parametros ID y el modelo usuarioModel

 

                httpMsg = Request.CreateResponse(HttpStatusCode.OK, usuario);//Capturamos la respuesta de la petición del proceso realizado

                return httpMsg;

            }

            catch (Exception ex)

            {

                httpMsg = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message);

            } 

            return httpMsg;

        }

Paso 6: Testear el método PUT desde Postman:

Antes de ejecutar el método PUT validamos los datos actuales que se encuentra almacenado en la base datos (con e fin de tener nuestro evidencia antes de actualizar los datos).

Se actualizará el registro ID = 7

Seguidamente ejecutamos la WebApi desde el Visual Studio, abrimos el SQL Server Management Studio con el fin de validar los datos a actualizar, se realizará las siguientes acciones en Postman (las mismas acciones realizadas en la Fase II, con la salvedad del punto 6 que se debe cambiar los valores):

  1. Seleccionamos el tipo de método POST.
  2. Ingresamos la url https://localhost:44336/api/Usuario/7
  3. Clic en Body
  4. Marcamos raw
  5. Seleccionamos JSON (application/json)
  6. Finalmente ingresamos los datos a ingresar en formato JSON.
Comparamos los datos actualizar vs la primera evidencia capturado.

Conclusión:

Ahora bien con todo lo visto podemos decir que el métodos PUT hacen referencia a la acción de actualizar (Update) los registro de una base de datos, es decir de cara a la interfaz no existe ninguna variación del como se invoca y procesa los datos, sin embargo la forma de implementar con ADO.Net te brinda mayor versatilidad a los cambios que pueda realizar a futuro.

Nuevamente éxitos y bendiciones para todos 😊; y mil gracias por la acogida de este nuevo articulo; déjanos sus comentarios y apreciaciones acerca del articulo y un fuerte abrazo para todos ✌...!!!

Publicar un comentario

0 Comentarios