How to work with REST API in JavaScript: from query to data output. Use fetch, JSON parsing, rendering to HTML. Example of public API.

Tr0jan_Horse

Expert
ULTIMATE
Local
Active Member
Joined
Oct 23, 2024
Messages
228
Reaction score
6
Deposit
0$
How to Work with REST API in JavaScript: From Query to Data Output

In the world of web development, working with REST APIs is a crucial skill. This article will guide you through the process of querying a REST API using JavaScript, parsing the JSON response, and rendering the data to HTML. We will use the Fetch API, which is a modern way to make network requests.

1. Understanding REST APIs

REST (Representational State Transfer) APIs allow different software applications to communicate over the web. They use standard HTTP methods like GET, POST, PUT, and DELETE to perform operations on resources.

2. Fetching Data with Fetch API

The Fetch API provides a simple interface for fetching resources. Here’s how to use it to get data from a public API. For this example, we will use the [OpenWeatherMap API](https://openweathermap.org/api) to fetch weather data.

```javascript
const apiKey = 'YOUR_API_KEY'; // Replace with your API key
const city = 'London';
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;

fetch(url)
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => {
console.log(data);
renderWeather(data);
})
.catch(error => {
console.error('There has been a problem with your fetch operation:', error);
});
```

3. Parsing JSON Data

Once we receive the response, we need to parse the JSON data. The `response.json()` method converts the response body to a JavaScript object.

In the example above, we log the data to the console. You can access specific properties of the data object, such as temperature, weather conditions, etc.

4. Rendering Data to HTML

Now that we have the data, let’s render it to the HTML. We will create a simple function to display the weather information.

```javascript
function renderWeather(data) {
const weatherContainer = document.getElementById('weather');
const temperature = data.main.temp;
const weatherDescription = data.weather[0].description;

weatherContainer.innerHTML = `
<h2>Weather in ${data.name}</h2>
<p>Temperature: ${temperature}°C</p>
<p>Condition: ${weatherDescription}</p>
`;
}
```

Make sure you have a `<div>` element with the ID `weather` in your HTML:

```html
<div id="weather"></div>
```

5. Complete Example

Here’s the complete code for fetching and displaying weather data:

```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Weather App</title>
</head>
<body>
<div id="weather"></div>
<script>
const apiKey = 'YOUR_API_KEY'; // Replace with your API key
const city = 'London';
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;

fetch(url)
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => {
renderWeather(data);
})
.catch(error => {
console.error('There has been a problem with your fetch operation:', error);
});

function renderWeather(data) {
const weatherContainer = document.getElementById('weather');
const temperature = data.main.temp;
const weatherDescription = data.weather[0].description;

weatherContainer.innerHTML = `
<h2>Weather in ${data.name}</h2>
<p>Temperature: ${temperature}°C</p>
<p>Condition: ${weatherDescription}</p>
`;
}
</script>
</body>
</html>
```

Conclusion

Working with REST APIs in JavaScript is straightforward with the Fetch API. By following the steps outlined in this article, you can easily fetch data, parse JSON, and render it to your web application. Experiment with different APIs and expand your skills
 
Register
Top