{"meta":{"title":"Gestion des limites de taux de l'API","intro":"Copilot Chat peut aider à gérer les limites de débit d’API en suggérant du code qui les détecte et implémente une logique de nouvelle tentative.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook","title":"livre de recettes GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook/debug-errors","title":"Erreurs de débogage"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-cookbook/debug-errors/handle-api-rate-limits","title":"Gérer les limites de taux de l'API"}],"documentType":"article"},"body":"# Gestion des limites de taux de l'API\n\nCopilot Chat peut aider à gérer les limites de débit d’API en suggérant du code qui les détecte et implémente une logique de nouvelle tentative.\n\nLorsque vous effectuez des demandes à des API, il est courant de rencontrer des limites de débit qui limitent le nombre d’appels que vous pouvez effectuer dans un délai donné.\nGitHub Copilot Chat peut vous aider à gérer ces limites en suggérant du code pour détecter les réponses de limite de débit et réessayer automatiquement les demandes après un délai.\n\n## Exemple de scénario\n\nLe code Python suivant extrait des données météorologiques à partir d’une API externe. Si l’API a des limites de débit, les requêtes peuvent échouer lorsque des limites sont dépassées et votre application peut avoir besoin d’un moyen de gérer ces réponses correctement en implémentant la logique de nouvelle tentative.\n\n```python id=rate-limit-example\nfrom flask import Flask, request\nimport requests\n\napp = Flask(__name__)\n\nWEATHER_API_URL = \"https://api.example.com/weather\"\n\n@app.route('/get_weather', methods=['GET'])\ndef get_weather():\n    city = request.args.get('city')\n    # Simulate an API request to the external weather service\n    response = requests.get(WEATHER_API_URL, params={\"city\": city})\n    weather_data = response.json()\n\n    return weather_data\n```\n\n## Exemple d’invite\n\n```copilot copy prompt ref=rate-limit-example\nHow can I handle API rate limits within get_weather().\n```\n\n## Exemple de réponse\n\n> \\[!NOTE] La réponse suivante est un exemple. Les réponses Copilot Chat ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.\n\nCopilot peut suggérer du code qui implémente un mécanisme de nouvelle tentative avec temporisation exponentielle afin de limiter la fréquence des tentatives.\n\nPar exemple:\n\n```python\nimport requests\nfrom flask import Flask, request\nfrom requests.adapters import HTTPAdapter\nfrom requests.packages.urllib3.util.retry import Retry\n\napp = Flask(__name__)\n\nWEATHER_API_URL = \"https://api.example.com/weather\"\n\ndef requests_retry_session(\n    retries=3,\n    backoff_factor=0.3,\n    status_forcelist=(500, 502, 504),\n    session=None,\n):\n    session = session or requests.Session()\n    retry = Retry(\n        total=retries,\n        read=retries,\n        connect=retries,\n        backoff_factor=backoff_factor,\n        status_forcelist=status_forcelist,\n    )\n    adapter = HTTPAdapter(max_retries=retry)\n    session.mount(\"http://\", adapter)\n    session.mount(\"https://\", adapter)\n    return session\n\n@app.route('/get_weather', methods=['GET'])\ndef get_weather():\n    city = request.args.get('city')\n    try:\n        response = requests_retry_session().get(WEATHER_API_URL, params={\"city\": city})\n        response.raise_for_status()\n        weather_data = response.json()\n    except requests.exceptions.RequestException as e:\n        return {\"error\": str(e)}, 500\n\n    return weather_data\n```\n\nDans cet exemple, Copilotles suggestions incluent la configuration d’une session de nouvelle tentative qui permet au code de réessayer automatiquement les demandes en cas d’échec en raison de codes d’état spécifiques (500, 502, 504). Le `backoff_factor` augmente progressivement le délai entre les nouvelles tentatives, ce qui permet d’éviter de dépasser davantage la limite de débit de l’API.\n\n## Lectures complémentaires\n\n* [Ingénierie rapide pour GitHub Copilot Chat](/fr/enterprise-cloud@latest/copilot/concepts/prompting/prompt-engineering)\n* [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/enterprise-cloud@latest/copilot/get-started/best-practices)"}