{"meta":{"title":"Umgang mit API-Ratenbegrenzungen","intro":"Copilot-Chat kann beim Umgang mit API-Ratenbegrenzungen helfen, indem er Code vorschlägt, der sie erkennt, und indem er die Wiederholungslogik implementiert.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook","title":"GitHub Copilot Chat-Cookbook"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/debug-errors","title":"Debuggen von Fehlern"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/debug-errors/handle-api-rate-limits","title":"Mit API-Ratenbegrenzungen umgehen"}],"documentType":"article"},"body":"# Umgang mit API-Ratenbegrenzungen\n\nCopilot-Chat kann beim Umgang mit API-Ratenbegrenzungen helfen, indem er Code vorschlägt, der sie erkennt, und indem er die Wiederholungslogik implementiert.\n\nBeim Senden von Anforderungen an APIs treten häufig Ratenbegrenzungen auf, die die Anzahl der Aufrufe beschränken, die Sie innerhalb eines bestimmten Zeitraums durchführen können. GitHub Copilot Gespräch kann beim Umgang mit diesen Begrenzungen helfen, indem er Code vorschlägt, der Ratenbegrenzungsantworten erkennt, und indem er die Anforderungen nach einer bestimmten Wartezeit automatisch wiederholt.\n\n## Beispielszenario\n\nMit dem folgenden Python-Code werden Wetterdaten aus einer externen API abgerufen. Wenn für die API Ratenbegrenzungen festgelegt sind, können bei Anforderungen Fehler auftreten, wenn die Grenzwerte überschritten werden. Ihre App sollte die Möglichkeit haben, mit diesen Antworten ordnungsgemäß umzugehen, indem die Wiederholungslogik implementiert wird.\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## Beispiel für Prompt\n\n```copilot copy prompt ref=rate-limit-example\nHow can I handle API rate limits within get_weather().\n```\n\n## Beispielantwort\n\n> \\[!NOTE] Die folgende Antwort ist ein Beispiel. Da die Copilot-Chat-Antworten nicht deterministisch sind, erhältst du möglicherweise eine andere Antwort als die hier beschriebene.\n\nUm die Häufigkeit der Wiederholungsversuche zu beschränken, kann Copilot Code vorschlagen, mit dem ein Wiederholungsmechanismus mit exponentiellem Backoff implementiert wird.\n\nBeispiel:\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\nIn diesem Beispiel schlägt Copilot unter anderem vor, eine Wiederholungssitzung einzurichten, über die der Code Anforderungen automatisch wiederholen kann, wenn aufgrund von bestimmten Statuscodes (500, 502, 504) Fehler auftreten. Der `backoff_factor` verlängert schrittweise die Wartezeit zwischen den Versuchen. Dadurch wird verhindert, dass das Ratenlimit der API weiterhin überschritten wird.\n\n## Weiterführende Themen\n\n* [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}