Bird
Raised Fist0
Angularframework~20 mins

GET requests in Angular - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Angular GET Requests Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What will this Angular component display after a successful GET request?

Consider this Angular standalone component that fetches user data on initialization.

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-user',
  standalone: true,
  template: `<div>User: {{ user?.name }}</div>`
})
export class UserComponent implements OnInit {
  user: any;
  constructor(private http: HttpClient) {}

  ngOnInit() {
    this.http.get('https://api.example.com/user/1').subscribe(data => {
      this.user = data;
    });
  }
}

Assuming the GET request returns {"name": "Alice"}, what will be shown in the browser?

Angular
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-user',
  standalone: true,
  template: `<div>User: {{ user?.name }}</div>`
})
export class UserComponent implements OnInit {
  user: any;
  constructor(private http: HttpClient) {}

  ngOnInit() {
    this.http.get('https://api.example.com/user/1').subscribe(data => {
      this.user = data;
    });
  }
}
AUser: [object Object]
BUser: undefined
CUser: null
DUser: Alice
Attempts:
2 left
💡 Hint

Look at how the template uses the safe navigation operator ?. and what the GET request returns.

📝 Syntax
intermediate
1:30remaining
Which option correctly performs a GET request using Angular's HttpClient?

Choose the code snippet that correctly uses Angular's HttpClient to perform a GET request and subscribe to the response.

Athis.http.get('url').then(response => console.log(response));
Bthis.http.get('url').on('response', res => console.log(res));
Cthis.http.get('url').subscribe(response => console.log(response));
Dthis.http.get('url').fetch(response => console.log(response));
Attempts:
2 left
💡 Hint

Remember that Angular's HttpClient returns an Observable, not a Promise.

🔧 Debug
advanced
2:30remaining
Why does this Angular GET request fail with a CORS error?

Look at this Angular service method:

getData() {
  return this.http.get('https://external-api.com/data');
}

When called, the browser console shows a CORS error. What is the most likely cause?

Angular
getData() {
  return this.http.get('https://external-api.com/data');
}
AThe external API does not allow cross-origin requests from your app's domain.
BThe URL is missing the HTTP protocol prefix.
CAngular HttpClient requires POST method for external APIs.
DThe HttpClient module is not imported in the app module.
Attempts:
2 left
💡 Hint

CORS errors happen when the server blocks requests from different origins.

❓ state_output
advanced
2:00remaining
What is the value of 'data' after this GET request completes?

Given this Angular component code:

data: any;

constructor(private http: HttpClient) {}

ngOnInit() {
  this.http.get('https://api.example.com/items').subscribe(response => {
    this.data = response;
  });
}

If the API returns [{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}], what will data contain?

Angular
data: any;

constructor(private http: HttpClient) {}

ngOnInit() {
  this.http.get('https://api.example.com/items').subscribe(response => {
    this.data = response;
  });
}
A{"id":1,"name":"Item1"}
B[{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}]
Cundefined
Dnull
Attempts:
2 left
💡 Hint

The API returns an array of objects. The subscription assigns the whole response to data.

🧠 Conceptual
expert
3:00remaining
Which statement best explains Angular's HttpClient GET request behavior?

Choose the statement that correctly describes how Angular's HttpClient GET requests work.

AHttpClient GET returns an Observable that emits the response once and completes automatically.
BHttpClient GET returns a Promise that resolves with the response data.
CHttpClient GET returns an Observable that keeps emitting data every second until unsubscribed.
DHttpClient GET returns a synchronous response immediately without waiting.
Attempts:
2 left
💡 Hint

Think about how Angular handles HTTP requests and Observables.

Practice

(1/5)
1. What is the main purpose of a GET request in Angular's HttpClient?
easy
A. To update existing data on the server
B. To send new data to the server
C. To delete data from the server
D. To retrieve data from a server without changing it

Solution

  1. Step 1: Understand GET request purpose

    GET requests are used to ask the server to send data without modifying it.
  2. Step 2: Compare with other HTTP methods

    POST sends new data, DELETE removes data, PUT/PATCH updates data, so they are not GET.
  3. Final Answer:

    To retrieve data from a server without changing it -> Option D
  4. Quick Check:

    GET = retrieve data [OK]
Hint: GET always fetches data without changing it [OK]
Common Mistakes:
  • Confusing GET with POST or DELETE
  • Thinking GET modifies server data
  • Using GET to send data in the request body
2. Which of the following is the correct way to make a GET request using Angular's HttpClient?
easy
A. this.http.get('url').subscribe(data => console.log(data));
B. this.http.post('url').subscribe(data => console.log(data));
C. this.http.delete('url').subscribe(data => console.log(data));
D. this.http.put('url').subscribe(data => console.log(data));

Solution

  1. Step 1: Identify HttpClient method for GET

    The method to fetch data is get() on HttpClient.
  2. Step 2: Check syntax with subscribe

    Using subscribe handles the asynchronous response correctly.
  3. Final Answer:

    this.http.get('url').subscribe(data => console.log(data)); -> Option A
  4. Quick Check:

    HttpClient.get() + subscribe = correct GET syntax [OK]
Hint: Use http.get() with subscribe to fetch data [OK]
Common Mistakes:
  • Using post(), delete(), or put() instead of get()
  • Forgetting to subscribe to the observable
  • Calling get() without parentheses
3. What will be logged to the console when this Angular code runs?
this.http.get('https://api.example.com/items').subscribe(data => console.log(data));
medium
A. The data received from the API endpoint
B. An error message because subscribe is missing
C. Nothing, because get() does not return data
D. A syntax error due to wrong method usage

Solution

  1. Step 1: Understand HttpClient.get() behavior

    The get() method returns an observable that emits the data from the API.
  2. Step 2: Effect of subscribe()

    Calling subscribe() listens to the observable and runs the callback with the data, logging it.
  3. Final Answer:

    The data received from the API endpoint -> Option A
  4. Quick Check:

    subscribe logs API data [OK]
Hint: subscribe callback logs the fetched data [OK]
Common Mistakes:
  • Assuming get() returns data directly without subscribe
  • Thinking subscribe is optional
  • Confusing observable with promise
4. Identify the error in this Angular GET request code:
this.http.get('https://api.example.com/data').subscribe(data => this.data = data);

Assuming this.http is properly injected and data is a class property.
medium
A. GET request URL is invalid
B. HttpClient is not imported
C. Missing error handling in subscribe
D. subscribe callback uses wrong arrow function syntax

Solution

  1. Step 1: Check syntax and usage

    The get() call and subscribe syntax are correct, and this.http is assumed injected.
  2. Step 2: Identify missing best practice

    No error handling is provided in subscribe, which can cause silent failures.
  3. Final Answer:

    Missing error handling in subscribe -> Option C
  4. Quick Check:

    Always add error handling in subscribe [OK]
Hint: Always handle errors in subscribe to catch failures [OK]
Common Mistakes:
  • Ignoring error callback in subscribe
  • Assuming URL is invalid without checking
  • Confusing arrow function syntax
5. You want to load a list of users from an API and display them in your Angular component. Which approach correctly combines GET request and updating the component's state?
hard
A. Call this.http.post('api/users').subscribe(users => this.users = users); in constructor
B. Use this.http.get('api/users').subscribe(users => this.users = users); in ngOnInit
C. Assign this.users = this.http.get('api/users'); directly without subscribe
D. Use this.http.delete('api/users').subscribe(users => this.users = users); in ngOnInit

Solution

  1. Step 1: Choose correct HTTP method and lifecycle hook

    GET is used to fetch data; ngOnInit is the right place to load data after component creation.
  2. Step 2: Use subscribe to update component state

    Subscribe receives data asynchronously and assigns it to this.users for display.
  3. Final Answer:

    Use this.http.get('api/users').subscribe(users => this.users = users); in ngOnInit -> Option B
  4. Quick Check:

    GET + subscribe + ngOnInit = correct pattern [OK]
Hint: Load data in ngOnInit with http.get() and subscribe [OK]
Common Mistakes:
  • Using POST or DELETE instead of GET
  • Assigning observable directly without subscribe
  • Loading data in constructor instead of ngOnInit
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard