Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Challenge: Building an Async API Client | Asyncio in Practice
Python Asyncio in Depth
Sección 3. Capítulo 5
single

single

Challenge: Building an Async API Client

Desliza para mostrar el menú

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.
Tarea

Desliza para comenzar a programar

  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().

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt