Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Challenge: Building an Async API Client | Asyncio in Practice
Python Asyncio in Depth
Section 3. Chapitre 5
single

single

Challenge: Building an Async API Client

Glissez pour afficher le menu

You are building a rate-limited API client that fetches comment data from jsonplaceholder.typicode.com. The client must limit concurrency to avoid overwhelming the server, apply a per-request timeout, and collect results without failing on individual errors.

The endpoint https://jsonplaceholder.typicode.com/comments/{comment_id} returns a JSON object with the following fields:

  • postId: the ID of the post the comment belongs to;
  • name: the comment title;
  • email: the commenter's email address.
Tâche

Glissez pour commencer à coder

  1. Define an async function fetch_comment(client, semaphore, comment_id) that:
    • Uses the provided semaphore to limit concurrency;
    • Fetches the comment with a 3.0 second timeout using asyncio.wait_for();
    • Returns a formatted string: "[Post {postId}] {name} by {email}";
    • Returns "Comment {comment_id} failed" if a TimeoutError or Exception occurs.
  2. Define an async function main() that:
    • Creates an asyncio.Semaphore with a limit of 5;
    • Fetches comments with IDs 1 through 15 concurrently using asyncio.gather();
    • Prints each result on a separate line.
  3. Run main() using asyncio.run().

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 5
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt