Ir al contenido principal

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

Hola nuevamente, para anunciarles que esta serie de artículos acerca de cómo Crear Web API en ASP.Net con ADO.Net usando Visual Studio 2019 se estaría concluyendo con el ultimo método de DELETE, así mismo recomendarles que deben revisar el articulo acerca de CRUD - Base de Datos con Microsoft SQL Server 2019 donde se crearon todos los procedimientos almacenados en relación a esta serie de artículos.

Como ya es conocido el método DELETE se utiliza para eliminar un registro existente, es similar a la funcionalidad DELETE que se puede realizar directamente en la base de datos.

Se considera una respuesta exitosa de una solicitud DELETE, debería ser una respuesta exitosa HTTP code 200 (OK) si la respuesta incluye una entidad que describe el estado. En caso la respuesta HTTP sea 202 (Accepted) quiere decir que la acción se ha puesto en cola o en todo caso sea un 204 (No Content) la la acción se ha realizado pero la respuesta no incluye una entidad.

Lo que veremos en este articulo:

  • Requisitos.
  • Paso 1: Implementar el método DeleteUsers en el proyecto Data.Access.
  • Paso 2: Invocar el método DeleteUsers en el proyecto WebApi.Data.Business
  • Paso 3: Invocar el método DeleteUsers en el proyecto WebApi.Domain.
  • Paso 4: Implementar el método DELETE en el proyecto WebApi.
  • Paso 5: Testear el método DELETE 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 DeleteUsers en el proyecto Data.Access:

Al igual que en la Fase III las referencias System.ConfigurationSystem.Data y System.Data.Cliente ya se encuentran agregadas las referencias e importamos en la clase UsuarioDAL.cs estos pacos previos por sirver para poder acceder a la base de datos y realizar la eliminación del registros a través de procedimiento alamacenado que fue implementado en el articulo del CRUD con SQL Server 2019; seguidamente implementamos el método DeleteUsers con el fin de invocar en todas las capas de nuestra solución y finalmente invocar e implementar el método DELETE  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 eliminación sólo pasaremos el parámetro id:

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 DeleteUsers(int id)//Como parámetro de entrada pasamos el id

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

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

 

                int result;

                using (SqlConnection con = new SqlConnection(cs))

                {

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

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

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

 

                    com.Parameters.Add("@id", SqlDbType.Int, 5).Value = id;//Agregamos y hacemos match el id en referencia al parametro de entrada

 

                    result = com.ExecuteNonQuery();//Ejecutar el comando y eliminar el registro

                }

                return result;

            }

    }

}

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

Ahora invocamos el método DeleteUsers(int id) 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 DeleteUsers(int id)

        {

            try

            {

                return UsuarioDAL.DeleteUsers(id);

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

    }

}

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

Seguidamente invocamos el método DeleteUsers(int id,) 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 DeleteUsers(int id)

        {

            try

            {

                return Usuario.DeleteUsers(id);

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

    }

}

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

La implementación del método DELETE se logrará en base a la invocación al método DeleteUsers. Para lo cual ya se encuentran agregadas las referencias e importardas (desde el code behind) los proyectos de ArquitecturaWebApi.Models y ArquitecturaWebApi.Domain.

        // DELETE: api/Usuario/5

        public HttpResponseMessage Delete(int id)

        {

            HttpResponseMessage httpMsg = null;

            try

            {

                UsuarioModel usuario = new UsuarioModel();

                usuario.id = id;

 

                usuarioDomain.DeleteUsers(id);

                httpMsg = Request.CreateResponse(HttpStatusCode.OK, usuario);

                return httpMsg;

            }

            catch (Exception ex)

            {

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

            }

 

            return httpMsg;

        }

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

Antes de ejecutar el método DELETE realicemos un select a la tabla USUARIO en nuestra base de datos BD_TEST (Eliminaremos en id 7).

Se actualizará el registro ID = 7

Seguidamente ejecutamos la WebApi desde el Visual Studio y realizaremos las siguientes acciones en Postman:

  1. Seleccionamos el tipo de método DELETE.
  2. Ingresamos la url https://localhost:44336/api/Usuario/7
  3. Clic en Send
Como Status nos retorna 200 OK, y validamos en SQL que el id 7 ya fue eliminado

Conclusión:

El método DELETE hacen referencia a la acción de eliminar un registro de la base de datos desde la interfaz del API en caso sea exitoso retorna el code 200 (OK), o 202 (Accepted) si el proceso aun esta en cola de espera o en caso sea 204 (No Content) que no ha encontrado la entidad a procesar, reitero toda parte de la implementación con ADO.Net no ha variado y la versatilidad que nos ofrece a realizar los cambios futuros a nivel de base de datos son una de las principales bondades.

Mil gracias por la acogida de esta serie de artículos 😊; déjanos sus comentarios y apreciaciones acerca del cómo Crear Web API en ASP.NET con ADO.Net usando VS 2019, un fuerte abrazo para todos ✌...!!!

Comentarios

Entradas más populares de este blog

Habilitar Usuario HR Oracle

Al realizar la primera instalación del Oracle, el usuario HR por defecto está bloqueado y por ende no podemos loguearnos como dicho usuario, lo que debe hacer son los siguiente pasos, aplicables para Linux o Windows.
1. Conectarse como usuario system o sysdba + contraseña haciendo uso del comando connect.
Usuario: system
Password: xxxx 


2. Hacer uso  del comando alter user hr account unlock desbloqueamos la cuenta.
alter user hr account unlock;

3. Escribimos el comando alter user HR identified by hr; con esto estamos diciendo que la contraseña será hr.

alter user HR identified by hr;

4. Ahora testeamos la conexión con el comando - conn hr/hr@xe. Si deseas después de conectarnos se puede realizar un select a la tabla employees del hr.


Resultado del select realizado
5. Con todos estos pasos realizados ya podemos logearnos desde cualquier IDE como el usuario hr  y la contraseña hr que definimos en el paso 3. 
Para finalizar nos loguearemos con el IDE Oracle SQL Developer.

Espero les sea de utilidad,…

Usuario SYS y SYSTEM - ORACLE

Usuario SYS y SYSTEM
Ambos usuario son creados de forma automática al crear la base de datos ORACLE y se otorga el rol de DBA.

SYS (password por defecto: CHANGE_ON_INSTALL).
SYSTEM (password por defecto: MANAGER).

Lo que se recomienda es cambiar el password de ambos usuarios por el tema de seguridad.

SYS:
Todas las tablas y vistas para el diccionario de datos de la base de datos están almacenados en el esquema SYS. Estas tablas y vistas son críticas para el funcionamiento de la base de datos ORACLE. Para mantener la integridad del diccionario de datos, las tablas del esquema SYS son manipulados solo por la base de datos. Nunca se debería modificar algo o crear tablas en el esquema del usuario SYS.

SYSTEM:
El usuario SYSTEM se utiliza para crear tablas y vistas adicionales que muestran información administrativa, tablas internas y vistas utilizado por varias opciones y herramientas de la base de datos ORACLE. No se recomienda utilizar el esquema SYSTEM para almacenar tablas de interés para usu…

Parámetro de entrada y salida – PL/SQL

Parámetro de entrada y salida – PL/SQL:
Los parámetros de entrada y salida no son los parámetros de inicialización de la base de datos ORACLE. Los parámetros de entra y salida son utilizados mayormente en implementaciones de funciones, procedimientos almacenados o bloques de código bajo el lenguaje del PL/SQL, se considera que ambos parámetros (entra y salida) puedan realizar operaciones en el mismo bloque PL/SQL, es decir, si enviamos un parámetro de entrada hará que cumpla cierta operación y retornara los valores de salida de dicha operación procesada de acuerdo al parámetro de ingresado. Es de acuerdo al caso que nos presenta en la implementación.
Algo importante al definir los parámetros, es saber y considerar cuántos tipos de parámetro existe si solo hablamos de entrada y salida, en realidad mi determinación seria 3 tipos:

Parámetros:

IN – entrada
OUT – salida
IN OUT – entrada salida

Parámetro IN – entrada:
El comportamiento común de estés tipos de parámetros es estar siempre pendiente d…