Article image Integration with APIs and Web Services: Consuming REST APIs

9.3. Integration with APIs and Web Services: Consuming REST APIs

Page 121 | Listen in audio

In section 9.3 of our Flutter and Dart course, we'll cover a crucial topic for modern app development: integration with APIs and web services. Specifically, we'll be focusing on how to consume REST APIs.

APIs, or application programming interfaces, are a way for software to interact with other software. They allow different software, written in different languages, to communicate and work together. REST APIs in particular are widely used on the web because of their simplicity and efficiency.

To begin with, let's understand what a REST API is. REST stands for Representational State Transfer. It is an architectural style that defines a set of constraints to be used to create web services. Web services that adhere to these restrictions are called RESTful services.

RESTful services allow developers to interact with the service using standard HTTP methods such as GET, POST, PUT, and DELETE. For example, you can use a GET method to retrieve data from a service, a POST method to submit new data, a PUT method to update existing data, and a DELETE method to delete data.

To consume a REST API in Flutter, you need to make an HTTP request to the service, wait for the response, and then process the response. This usually involves extracting data from the response body and converting that data into a format your application can use.

Dart's http package makes this easy. You can use the http.get() function to make a GET request, the http.post() function to make a POST request, and so on. Each of these functions returns a Future that contains the server's response.

Here is an example of how you can consume a REST API in Flutter:

import 'package:http/http.dart' as http;
import 'dart:convert';

void fetchData() async {
  final response = await http.get('https://example.com/api/data');

  if (response.statusCode == 200) {
    // If the server returns an OK response, we parse the JSON.
    return jsonDecode(response.body);
  } else {
    // If the response is not OK, we throw an error.
    throw Exception('Failed to load data');
  }
}

This code makes a GET request to the given URL, waits for the response, and then checks the status code for the response. If the status code is 200, which means the request was successful, it decodes the response body as JSON. If the status code is not 200, it throws an exception.

Once you have the data, you can use it to update your app's UI. For example, you can display the data in a list or a graph, depending on your application's needs.

It is important to note that HTTP requests can take some time to complete, especially if the network is slow or the server is busy. Therefore, you should always make HTTP requests in an async function and use the await keyword to wait for the response. This prevents your application from getting stuck while waiting for the response.

Also, you should always handle possible errors when making HTTP requests. This includes checking the status code of the response, as shown in the example above, and handling possible exceptions that may occur during the request.

In short, integrating with APIs and web services is an essential skill for any modern application developer. With Flutter and Dart, you can easily consume REST APIs and use the returned data to build rich, interactive apps.

Now answer the exercise about the content:

What is the meaning of REST in API terminology and what is its role?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Integration with APIs and Web Services: Consuming SOAP APIs

Next page of the Free Ebook:

122Integration with APIs and Web Services: Consuming SOAP APIs

3 minutes

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text