Sección 3. Capítulo 5
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
- Define an async function
fetch_comment(client, semaphore, comment_id)that:- Uses the provided
semaphoreto limit concurrency; - Fetches the comment with a
3.0second timeout usingasyncio.wait_for(); - Returns a formatted string:
"[Post {postId}] {name} by {email}"; - Returns
"Comment {comment_id} failed"if aTimeoutErrororExceptionoccurs.
- Uses the provided
- Define an async function
main()that:- Creates an
asyncio.Semaphorewith a limit of5; - Fetches comments with IDs
1through15concurrently usingasyncio.gather(); - Prints each result on a separate line.
- Creates an
- Run
main()usingasyncio.run().
Solución
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 3. Capítulo 5
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla