articles

Home / DeveloperSection / Articles / Fetch Data from RESTFul APIs in AngularJS

Fetch Data from RESTFul APIs in AngularJS

Fetch Data from RESTFul APIs in AngularJS

Ashutosh Kumar Verma 389 24-Jun-2024

RESTFul APIs in AngularJS

AngularJS uses AngularJS’s built-in services to make HTTP requests to retrieve data from RESTful APIs. Here is a step-by-step guide to fetch data from a RESTful API in AngularJS,

 

Set Up Your AngularJS Application

First, make sure your project includes AngularJS. You can download or use the CDN link in your HTML file.

<!DOCTYPE html>
<html ng-app="myApp">
<head>
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
 <script src="app.js"></script> <!-- Your AngularJS application script -->
</head>
<body>
 <div ng-controller="MainController">
   <!-- Display fetched data here -->
 </div>
</body>
</html>

 

Create your AngularJS Module and Controller

Define your AngularJS module and controller. Load the $http service, which is used to make HTTP requests.

// app.js
var app = angular.module('myApp', []);
// add angular services in controller
app.controller('MainController', ['$scope', '$http', function($scope, $http) {
 // Function to fetch data
 $scope.fetchData = function() {
   $http.get('https://api.example.com/data')
     .then(function(response) {
       // Handle successful response
       $scope.data = response.data;
     }, function(error) {
       // Handle error
       console.error('Error fetching data:', error);
     });
 };
 // Initial fetch when controller loads
 $scope.fetchData();
}]);

 

The other way to fetch data from RESTful API using $http({…}) method is as follow,

angular.module('myApp', [])
  .controller('MyController', function ($scope, $http) {
    //  fetch data from API
    $http({
        url: "https://api.example.com/data",
        method : "GET",
        DataType: "json"      
      }).then(function(response){
        $scope.items = response.data;
      }).catch(function(error){
        console.log("error: ", error);
      });
  });

 

Fetch Data Using $http

In the controller, use the $http.get method to retrieve data from your RESTful API. Replace 'https://api.example.com/data' with your actual API endpoint.

success Handler- .then (function(response) { ... })

  • This function is called if the HTTP request is successful. response.data contains the response data from the API.
  • Assign the fetched data to a $scope variable (e.g., $scope.data) and use it in your HTML.

Error handler- .catch(function(error) { ... }) .

  • This function handles any errors that occur during an HTTP request.

 

Show Fetched Data in your HTML

Update your HTML to display data fetched with AngularJS directives.

<div ng-controller="MainController">
 <ul>
   <li ng-repeat="item in data">{{ item.name }} - {{ item.description }}</li>
 </ul>
</div>

In the example above

  • ng-controller="MainController" Assigns the controller to a specific part of the HTML.
  • ng-repeat="object in data" Repeats over each object in the data structure retrieved from the API.
  • {{ item.name }} and {{ item.description }} specify the attributes of each item in the list.

 

Example- 

<!DOCTYPE html>
<html data-ng-app="myApp" lang="en">
<head>
  <meta charset="UTF-8">
  <title>AngularJS Loop Example</title>
  <!-- bootstrap cdn link -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <!-- angular js cdn link -->
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>

  <div data-ng-controller="MyController" class="container my-4">
    <!-- bind the controller data into bootstrap card -->
    <div class="row row-cols-1 row-cols-md-3 g-4">
      <div  data-ng-repeat="data in items" class="col">
        <div class="card h-100">
          <div class="card-header">
            <span class="p-1 rounded-circle bg-primary-subtle">{{data.id}}</span>
          </div>
          <div class="card-body">
            <p class="card-title fw-semibold m-0">{{data.title}}</p>
            <p class="card-text">{{data.body}}</p>
          </div>
        </div>
      </div>
    </div>
  </div>

  <script>
    angular.module('myApp', [])
      .controller('MyController', function ($scope, $http) {
        console.log("hello");
        //  fetch data from API
        $http.get("https://jsonplaceholder.typicode.com/posts")
          .then(function (response) {
            // take first 15 records only
            $scope.items = response.data.slice(0, 14);
            console.log("data fetched");
            // execute if any error occured
          }).catch(function (error) {
            console.log("error: ", error);
          });
      });
  </script>

</body>
</html>

Output- 

Fetch Data from RESTFul APIs in AngularJS

 

By following these steps, you can successfully fetch data from RESTful APIs in AngularJS and insert it into your web application.

 

Also, Read: Explain Routing in AngularJS


Updated 24-Jun-2024
Hi! This is Ashutosh Kumar Verma. I am a software developer at MindStick Software Pvt Ltd since 2021. I have added some new and interesting features to the MindStick website like a story section, audio section, and merge profile feature on MindStick subdomains, etc. I love coding and I have good knowledge of SQL Database.

Leave Comment

Comments

Liked By