|

|  How to Fetch COVID-19 Statistics with COVID-19 API in JavaScript

How to Fetch COVID-19 Statistics with COVID-19 API in JavaScript

October 31, 2024

Learn how to effortlessly retrieve real-time COVID-19 data using JavaScript and the COVID-19 API in this comprehensive, step-by-step guide.

How to Fetch COVID-19 Statistics with COVID-19 API in JavaScript

 

Introduction to Fetching COVID-19 Data

 

  • COVID-19 APIs are powerful tools that allow developers to integrate real-time or historical COVID-19 statistics into apps or websites, providing dynamic data to users.
  •  

  • In this guide, we focus on using JavaScript to fetch data from a COVID-19 API, process the response, and display the results effectively.

 

Understanding the API Endpoint

 

  • First, it's crucial to comprehend the API documentation. This provides important details like endpoint URLs, required parameters, and the response data structure.
  •  

  • Typically, COVID-19 APIs offer endpoints for global data, data specific to countries or regions, historical data, and sometimes vaccination statistics.

 

Making HTTP Requests with Fetch

 

  • JavaScript's Fetch API is a built-in way to make HTTP requests. It's promise-based, making it suitable for asynchronous programming.
  •  

  • Here's a basic example of how you might fetch data from a COVID-19 API:
  • // Specify the URL of the API endpoint
    const apiUrl = 'https://api.covid19api.com/summary';
    
    // Use Fetch to get data from the API
    fetch(apiUrl)
      .then(response => {
        if (!response.ok) {
          throw new Error('Network response was not ok');
        }
        return response.json();
      })
      .then(data => {
        console.log(data);
        // Process and display the data here
      })
      .catch(error => {
        console.error('There was a problem with the fetch operation:', error);
      });
    

 

Processing the API Response

 

  • Once you've received a response, you need to parse the JSON data. This is done using the `.json()` method on the response object.
  •  

  • After parsing, inspect the structure of the returned data object. For instance, determine where global statistics vs. country-specific data reside.
  •  

  • Example for processing and accessing data:
  • fetch(apiUrl)
      .then(response => response.json())
      .then(data => {
        // Access global statistics
        let globalData = data.Global;
        console.log(`New Confirmed Cases: ${globalData.NewConfirmed}`);
    
        // Access statistics for a specific country
        let countries = data.Countries;
        let countryData = countries.find(country => country.Slug === 'united-states');
        console.log(`US Total Deaths: ${countryData.TotalDeaths}`);
      });
    

 

Displaying the Data

 

  • Once you've processed the data, the next step is to display it in a meaningful way. Options include rendering the data directly on a webpage or using front-end libraries for graphical representation.
  •  

  • You might update the inner HTML of a container or use a JavaScript library like Chart.js to visualize trends over time.
  •  

  • Example of displaying data in HTML:
  • <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>COVID-19 Statistics</title>
    </head>
    <body>
      <div id="covid-stats">
        <h2>Global COVID-19 Statistics</h2>
        <p id="global-cases"></p>
        <p id="us-deaths"></p>
      </div>
    
      <script>
        fetch(apiUrl)
          .then(response => response.json())
          .then(data => {
            document.getElementById('global-cases').innerText = `New Confirmed Cases (Global): ${data.Global.NewConfirmed}`;
            document.getElementById('us-deaths').innerText = `Total Deaths (US): ${data.Countries.find(country => country.Slug === 'united-states').TotalDeaths}`;
          });
      </script>
    </body>
    </html>
    

 

Error Handling and Best Practices

 

  • It's essential to implement error handling, as network requests can fail due to connectivity problems or issues with API endpoints.
  •  

  • Use `catch()` in promise chains to manage errors. Consider displaying user-friendly messages or retrying a request under certain conditions.
  •  

  • Avoid excessive requests to the API by caching responses or throttling requests.

 

Conclusion

 

  • Fetching data using JavaScript and APIs is a common pattern in web development. For COVID-19 statistics, leveraging APIs allows real-time sharing of critical global and local information.
  •  

  • Continuously maintain the codebase and regularly check API documentation for updates or changes in endpoints and response structures.