Sandbox API v4 - Tworzenie użytkowników sandbox nie zawsze zwraca działające konto

W toku
api-lvlup-pro
Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Przy tworzeniu konta sandboxa (sandbox-api.lvlup.pro), czasami poniższy endpoint zwraca użytkowników z id:0:

https://sandbox-api.lvlup.pro/v4/sandbox/account/new

Przykładowa odpowiedź z tym błędem (dane oznaczone xxx zostały usunięte):

{
   "id":0,
   "username":"Botsford6983",
   "password":"h43rhFAYRPlNQYMM",
   "email":"xxx",
   "apiKey":"xxx"
}

Klucz takiego użytkownika nie może potem być użyty, np. do wyświetlenia informacji o nim korzystając z endpointu /me:

{
   "msg":"wrong token",
   "code":0
}
SystemZ
SystemZ Admin lvlup.pro

Tutaj wystąpiły dwa błędy które są do poprawy:

  • za małe limity tworzenia kont
  • niepoprawna obsługa błędów DB przez funkcję która zwraca dane konta
    • jeśli konto nie zostało utworzone w DB to nie powinno zostać zwrócone jako wynik i HTTP 200 lecz przynajmniej pusty HTTP 500
SystemZ
SystemZ Admin lvlup.pro

Limity tworzenia kont już działają przy okazji tych zmian:

https://lvlup.rok.ovh/t/dziennik-zmian-lvlup-pro-2020/13148/#70?u=systemz

Okazało się że rate limit nie był włączony dla endpointów dedykowanych sandboxowi :thonking:

Jeszcze brakuje lepszej obsługi błędów DB i wątek do zamknięcia.