C'est marrant de voir autant de drama pour une API qui permet seulement de récupérer un nombre très limité d'informations. 😂
J'suis totalement d'accord avec Irone par contre sur le fait que la base de donnée n'est pas assez optimisée (le fléaut des rétros d'ailleurs) pour passer de la limite de 15 groupes à une infinité.
Sachant que normalement les groupes sur Habbo sont limités à 100, ça reste une requête SQL qui recherche sur une table, parmis sûrement des centaines de milliers d'entrées pour afficher les 100 groupes de X, c'est pas génial.
Par contre, ce qu'il serait intéressant de mettre en place pour cette API serait des limites tout simplement avec un système de cache afin de limiter les requêtes SQL qui demandent de nombreuses ressources à la base de donnée.
Perso pour mon API (sur un projet perso), j'ai mis en place des RateLimits ainsi qu'un nombre limité de requêtes par token par exemple pour l'endpoint "/v1/status", on est limité à 600 requêtes sur une fenêtre de 5 minutes par token.
De plus certaines données sont gardées en cache, par exemple pour l'endpoint "/v2/quest/{id}", les données ne changent pas "normalement", donc lorsque la donnée est appelée, je la stock dans un fichier JSON interne, donc mon code vérifie déjà si l'entrée existe dans le fichier, si oui, elle ne fait aucune requête SQL, si non, elle fait une requête et l'ajoute au fichier.
De façon hebdomadaire, l'API vérifie si une donnée statique comme les quêtes a changé, si oui, elle met à jour le fichier en récupérant uniquement les données stockées dans le fichier JSON.
Après j'imagine que l'API d'HabboCity n'est pas comparable à la mienne étant donner que y a pas autant de données dans la base de donnée, mais ça marche plutôt bien et c'est une assez bonne technique.
L'avantage d'HabboCity est qu'à chaque connexion/déconnexion des joueurs, on peut mettre à jour facilement ce type de fichier, si le joueur est déjà entré, c'est qu'il a déjà été appelé, donc on met à jour ses stats lors qu'il se déconnecte.
Même si en général, on aime avoir des statistiques en temps réel, sécuriser et protéger une API permet aussi d'appliquer le même principe à une base de donnée friable.