API Request Limit erhöhen?

Thema wurde von sirtet, 25. Januar 2023 erstellt.

  1. sirtet

    sirtet Erfahrener Benutzer

    Registriert seit:
    4. Juli 2012
    Beiträge:
    1.117
    Danke erhalten:
    88
    Danke vergeben:
    88
    Die VARIO API Beta triggert bei mir beim Versuch alle Artikel aus dem Shop in die Wawi einzulesen die Fehlermeldung
    {"errors":["Request limit reached."]}
    Scheint mir, etwas umformatiert, direkt von Zeile 96 aus der Datei
    GambioApi/Application/Middleware/RateLimitMiddleware.php
    zu stammen.

    70 /**
    71 * @param ServerRequestInterface $request
    72 * @param RequestHandlerInterface $handler
    73 *
    74 * @return ResponseInterface
    75 */
    76 public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    77 {
    78 $authorization = $request->getHeader('Authorization')[0] ?? '';
    79 $sessionIdentifier = md5($authorization);
    80 if (empty($authorization) || empty($sessionIdentifier)) {
    81 throw new RuntimeException('No authorization header provided.');
    82 }
    83
    84 if ($this->checkRateLimit($sessionIdentifier)) {
    85 $response = $handler->handle($request);
    86
    87 return $response->withHeader('X-Rate-Limit-Limit', (string)$this->rateLimit['limit'])
    88 ->withHeader('X-Rate-Limit-Remaining', (string)$this->rateLimit['remaining'])
    89 ->withHeader('X-Rate-Limit-Reset', (string)$this->rateLimit['reset']);
    90 }
    91
    92 return $this->responseFactory->createResponse(429)
    93 ->withHeader('X-Rate-Limit-Limit', (string)$this->rateLimit['limit'])
    94 ->withHeader('X-Rate-Limit-Remaining', (string)$this->rateLimit['remaining'])
    95 ->withHeader('X-Rate-Limit-Reset', (string)$this->rateLimit['reset'])
    96 ->withJson(['errors' => ['Request limit reached.']]);
    97 }
    98

    Kann ich, bis VARIO das rate-limiting richtig implementiert hat,
    das im Shop erhöhen?
    Wäre das Zeile 34?

    34 private const DEFAULT_RATE_LIMIT = 5000;

    Was wäre noch zu beachten, wenn ich das Limit Serverseitig hochsetze?

    PS:
    Das ist kein Live-Sondern nur ein Testshop. Also sind da keine anderen User (Kunden) drauf, die von Störungen betroffen sein könnten.
     
  2. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Müsste so tun.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Mai 2019
    Beiträge:
    455
    Danke erhalten:
    206
    Danke vergeben:
    149
    #3 Anonymous, 10. August 2023
    Zuletzt bearbeitet: 4. Oktober 2023
    [gelöscht]
     
  4. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    940
    Danke erhalten:
    811
    Danke vergeben:
    301
    Hi @Til

    So auf den ersten Blick sieht das nach einem Limit pro Session aus:
    GXMainComponents/Controllers/Api/AbstractApiV2Controller.inc.php

    Code:
    const DEFAULT_RATE_LIMIT = 5000;
    Vermutlich aber eher das hier:

    GambioApi/Application/Middleware/RateLimitMiddleware.php
    Code:
    private const DEFAULT_RATE_LIMIT = 5000;
    Keine Ahnung, ob das update-sicher zu erhöhen ist. Alternativ könntest Du alle X Requests eine neue Session starten.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Mai 2019
    Beiträge:
    455
    Danke erhalten:
    206
    Danke vergeben:
    149
    #5 Anonymous, 10. August 2023
    Zuletzt bearbeitet: 4. Oktober 2023
    [gelöscht]