API integration lets your app talk to servers to get or send data. This helps your app show fresh info and work with other services.
When your app needs to show live weather updates from a weather service.
When users log in and you need to check their details on a server.
When your app sends messages or posts to a social media platform.
When you want to load product lists from an online store backend.
When your app saves user preferences or data remotely.
Syntax
React Native
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
// use the data here
})
.catch(error => {
// handle errors here
});
Use fetch to call APIs in React Native.
Always handle errors to keep your app stable.
Examples
Fetches a list of users and prints it in the console.
This React Native app fetches a todo item from a backend API and shows its details. It shows a loading spinner while waiting and an error message if something goes wrong.
APIs let your app get fresh data without updating the app itself.
Always check for errors to avoid app crashes.
Use loading indicators to improve user experience while waiting for data.
Summary
API integration connects your app to backend servers to get or send data.
This helps your app stay updated and interact with other services.
Use fetch or async/await in React Native to call APIs safely.
Practice
(1/5)
1. Why does a React Native app use API integration to connect to a backend server?
easy
A. To get or send data between the app and the server
B. To change the app's color scheme automatically
C. To increase the app's font size on the screen
D. To store data only on the user's device
Solution
Step 1: Understand the role of backend servers
Backend servers store and manage data that apps need to access or update.
Step 2: Recognize API integration purpose
API integration allows the app to communicate with the backend to get or send this data.
Final Answer:
To get or send data between the app and the server -> Option A
Quick Check:
API integration connects app and backend data [OK]
Hint: API integration moves data between app and server [OK]
Common Mistakes:
Thinking API changes app design automatically
Confusing local storage with backend data
Believing API only changes UI elements
2. Which of the following is the correct way to fetch data from an API in React Native using async/await?
easy
A. const data = fetch('https://api.example.com/data').json();
B. const response = await fetch('https://api.example.com/data'); const data = await response.json();
C. fetch('https://api.example.com/data').then(response => response.text());
D. await fetch('https://api.example.com/data').json();
Solution
Step 1: Use fetch with await to get response
fetch returns a promise; await waits for it to resolve to a response object.
Step 2: Use await on response.json() to parse JSON data
response.json() returns a promise that resolves to the parsed data.
Final Answer:
const response = await fetch('https://api.example.com/data'); const data = await response.json(); -> Option B
Quick Check:
Use await twice: fetch and json() [OK]
Hint: Await fetch, then await response.json() [OK]
Common Mistakes:
Calling json() directly on fetch without await
Using response.text() instead of response.json()
Missing await keyword causing unresolved promises
3. What will be logged to the console after this React Native code runs?
async function getData() {
const response = await fetch('https://api.example.com/user');
const user = await response.json();
console.log(user.name);
}
getData();
medium
A. The entire user object printed as a string
B. undefined
C. An error because fetch is not awaited
D. The user's name from the API response
Solution
Step 1: Await fetch and parse JSON
The code waits for the fetch call and parses the JSON response into the user object.
Step 2: Log the user's name property
console.log prints the value of user.name from the parsed object.
Final Answer:
The user's name from the API response -> Option D
Quick Check:
Await fetch and json() gives user.name [OK]
Hint: Await fetch and json() before accessing data [OK]
Common Mistakes:
Forgetting await causing unresolved promises
Logging user instead of user.name
Assuming fetch returns data directly without parsing
4. Identify the error in this React Native API call code:
async function fetchData() {
const response = fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
}
medium
A. Using await on response.json() is incorrect
B. fetch URL is invalid syntax
C. Missing await before fetch causing response to be a promise
D. console.log should be inside a .then() block
Solution
Step 1: Check fetch call usage
fetch returns a promise, so it must be awaited to get the response object.
Step 2: Identify consequence of missing await
Without await, response is a promise, so calling response.json() causes an error.
Final Answer:
Missing await before fetch causing response to be a promise -> Option C
Quick Check:
Always await fetch before response.json() [OK]
Hint: Await fetch before calling response.json() [OK]
Common Mistakes:
Assuming fetch returns data immediately
Calling json() on a promise instead of response
Misunderstanding async/await order
5. You want your React Native app to show updated weather data every time the user opens the app. Which approach best uses API integration to achieve this?
hard
A. Call the weather API inside a useEffect hook that runs on component mount
B. Store weather data once in a variable and never update it
C. Fetch weather data only when the user presses a button
D. Hardcode weather data in the app code
Solution
Step 1: Understand when to fetch updated data
To get fresh data each time the app opens, fetch on component mount is ideal.
Step 2: Use React Native lifecycle with useEffect
useEffect with empty dependency array runs once on mount, perfect for initial API call.
Final Answer:
Call the weather API inside a useEffect hook that runs on component mount -> Option A
Quick Check:
useEffect on mount fetches fresh data [OK]
Hint: Fetch data on mount with useEffect [OK]
Common Mistakes:
Not updating data after first load
Fetching only on user action missing auto updates
Hardcoding data prevents real-time updates
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.