The task here is to show how the XMLHttpRequest can be used to DELETE data to an API by making a custom HTTP library. A placeholder API that contains an array of objects would be used as an example. The DELETE request is performed on this API. The URL of the API is https://jsonplaceholder.typicode.com/posts/
- An HTML file has to be created where the basic HTML markup is added as shown in the example below. At the end of the body, we attach two scripts which are library.js and app.js in the respective order. We will then created these files.
Creating the library.js file:
- A function easyHTTP is first made and a new XMLHttpRequest() object is initialized.
- A new prototype is created for the delete method using easyHTTP.prototype.delete. It contains two parameters url and a callback.
- A new request is opened using the open method. It takes three parameters, the first one is the type of the request (GET, POST, PUT or DELETE), the second is the URL for the API and last one is a boolean value, where true means an asynchronous call and false means synchronous call.
- The onload handler is used to display the data. It is executed after the API call is done. The status of the response is checked. If the status code is 200 then a callback function is run which contains two arguments, error and response text. If status code is not 200 then the callback function will simply print the error message.
- The last step is to send the request using the send() function.
Creating the app.js file:
- We will first instantiate easyHTTP that is created earlier using the new keyword.
- We then pass the URL and a callback function in the delete prototype function.
- The callback function will contain two arguments, that is, error to print if any error occurs and response to get the actual response.
The code examples below demonstrate the creation of all the required files.
Code for index.html
Code for library.js
Code for app.js
Open the index.html file in any browser and open the developer console. The output of the program would be visible here. The DELETE request along with its details can also be observed by using the Networks tab.