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:
- Microsoft Visual Studio Community 2019
- .Net Framework 4.6
- ADO.Net (tecnología para la conexión a datos)
- Microsoft SQL Server 2019 Express
- T-SQL (Lenguaje transaccional para SQL)
- 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.Configuration, System.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:
- Uno de ellos es el ID en referencia al tipo dato autogenerado como fin de hacer el match en la base de datos.
- 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:
/// <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):
- Seleccionamos el tipo de método POST.
- Ingresamos la url https://localhost:44336/api/Usuario/7
- Clic en Body
- Marcamos raw
- Seleccionamos JSON (application/json)
- 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 ✌...!!!
0 Comentarios