Solicitud DELETE usando XMLHttpRequest creando una biblioteca HTTP personalizada

La tarea aquí es mostrar cómo se puede usar XMLHttpRequest para ELIMINAR datos en una API creando una biblioteca HTTP personalizada. Se usaría como ejemplo una API de marcador de posición que contiene una array de objetos. La solicitud DELETE se realiza en esta API. La URL de la API es https://jsonplaceholder.typicode.com/posts/ 

requisitos previos:

  • Se requieren conocimientos básicos de HTML, CSS y JavaScript.
  • Se debe crear un archivo HTML donde se agrega el marcado HTML básico como se muestra en el ejemplo a continuación. Al final del cuerpo, adjuntamos dos scripts que son library.js y app.js en el orden respectivo. A continuación, crearemos estos archivos.

Creando el archivo library.js:

  1. Primero se crea una función easyHTTP y se inicializa un nuevo objeto XMLHttpRequest() .
  2. Se crea un nuevo prototipo para el método de eliminación usando easyHTTP.prototype.delete. Contiene dos parámetros url y una devolución de llamada.
  3. Se abre una nueva solicitud utilizando el método abierto . Toma tres parámetros, el primero es el tipo de solicitud (GET, POST, PUT o DELETE), el segundo es la URL de la API y el último es un valor booleano, donde verdadero significa una llamada asíncrona y falso significa una llamada síncrona . .
  4. El controlador de carga se utiliza para mostrar los datos. Se ejecuta después de que se realiza la llamada a la API. Se comprueba el estado de la respuesta. Si el código de estado es 200 , se ejecuta una función de devolución de llamada que contiene dos argumentos, error y texto de respuesta . Si el código de estado no es 200 , la función de devolución de llamada simplemente imprimirá el mensaje de error.
  5. El último paso es enviar la solicitud usando la función enviar() .

Creando el archivo app.js:

  1. Primero crearemos una instancia de easyHTTP que se creó anteriormente usando la nueva palabra clave.
  2. Luego pasamos la URL y una función de devolución de llamada en la función de eliminación del prototipo.
  3. La función de devolución de llamada contendrá dos argumentos, es decir, error para imprimir si ocurre algún error y respuesta para obtener la respuesta real.

Los ejemplos de código a continuación demuestran la creación de todos los archivos necesarios.

Código para index.html

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Delete request</title>
</head>
<body>
  <h1>
    Delete request using xmlhttpRequest/
    Ajax by making custom HTTP library.
  </h1>
  
  <!-- Including library.js and
  app.js files -->
  <script src="library.js"></script>
  <script src="app.js"></script>
</body>
</html>

Código para biblioteca.js

Javascript

function easyHTTP() {
  // Initialising new XMLHttpRequest method.
  this.http = new XMLHttpRequest();
}
  
// Make an HTTP Delete Request
easyHTTP.prototype.delete
  = function (url, callback) {
    
  // Open an request (GET/POST/PUT/DELETE,
  // PATH, ASYNC - TRUE/FALSE)
  this.http.open("DELETE", url, true);
  
  // Assigning this to self to have
  // scope of this into the function
  let self = this;
  
  // When the response is ready
  this.http.onload = function () {
    
    // Checking status
    if (self.http.status === 200) {
      
      // Callback function (Error, response text)
      callback(null, "Post Deleted");
    } else {
      
      // Callback function (Error message)
      callback("Error: " + self.http.status);
    }
  };
  
  // Send the request
  this.http.send();
};

Código para app.js

Javascript

// Instantiate easyHTTP
const http = new easyHTTP();
  
// Use the delete prototype
// method with (URL, callback(error, response text))
http.delete("https://jsonplaceholder.typicode.com/posts/1",
 function (
  err,
  response
) {
  if (err) {
    console.log(err);
  } else {
    console.log(response);
  }
});

Producción: 

Abra el archivo index.htm l en cualquier navegador y abra la consola del desarrollador. La salida del programa sería visible aquí. La solicitud DELETE junto con sus detalles también se puede observar mediante la pestaña Redes.

Publicación traducida automáticamente

Artículo escrito por thacker_shahid y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *