Skip to content
opack edited this page Mar 21, 2015 · 3 revisions

Version

La version doit être indiquée dans l'URL. Exemple : http://[host]:[port]/wordarena-server/1.0/[collection]...

  • 1.0 : Version initiale

Sécurité

Utiliser un token OAuth2, récupéré à partir de la méthode Google Play ou à partir du user/pwd du joueur (comme ça au moins s'il y a des appels frauduleux on sait qui a donné son compte pour ça).

Collection des joueurs players

Cette collection permet de manipuler les profils de joueur.

Créer un joueur POST players

Demande la création d'un joueur. Paramètres attendus :

  • phone : Identifiant unique du téléphone
  • pseudo : Pseudo du joueur

Obtenir des infos sur un joueur GET players/{pseudo}

Ne récupérer que certains champs en ajoutant ?fields=[field1],[fieldN].... Exemple : GET players/marco?fields=score,title. Champs disponibles :

  • score : Retourne le score du joueur
  • title : Retourne le titre du joueur
  • blessings : Retourne les bénédictions du joueur Pour récupérer les parties d'un joueur, utiliser la collection games.

Mettre à jour les infos sur un joueur PATCH players/{pseudo}

Champs disponibles :

  • score : Modifie le score du joueur
  • title : Modifie le titre du joueur
  • blessings : Modifie les bénédictions du joueur Pour ajouter ou mettre à jour les parties d'un joueur, utiliser la collection games.

Supprimer un joueur (fonctionnalité admin) DELETE players/{pseudo}

Collection des parties games

Cette collection permet de manipuler les parties en cours. C'est par cette collection qu'on modifie les parties auxquelles participe un joueur.

Créer une partie POST games

Demande la création d'une partie. Paramètres attendus :

  • type : Type de partie (CAREER, TRAINING, DUEL, TOURNAMENT, LEAGUE)
  • objective : Objectif de la partie
  • players : Pseudos (séparés par une virgule) des joueurs qui participent.
  • arena : JSON de l'arène

Chercher des parties GET games/

Retourne les parties correspondant aux critères indiqués. Critères disponibles :

  • type : Type de partie (CAREER, TRAINING, DUEL, TOURNAMENT, LEAGUE)
  • objective : Objectif de la partie
  • players : Pseudos (séparés par une virgule) des joueurs qui participent. Cette liste n'indique pas forcément tous les joueurs qui sont dans la partie, mais ceux dont on sait qu'ils y sont. Exemple : GET games?type=DUEL&players=alan. Retourne tous les duels auxquels participe Alan.

Le résultat peut être filtré pour n'afficher que certains champs spécifiques. Voir "Récupérer une partie GET games/{id}".

Récupérer une partie GET games/{id}

Retourne une partie spécifique. Le résultat peut être filtré pour ne retourner que certains champs de la partie en ajoutant ?fields=[field1],[fieldN].... Exemple : GET games/235542?fields=curPlayer,players. Champs disponibles :

  • id : Identifiant unique de la partie
  • startTime : Date/heure de création
  • endTime : Date/heure où la partie prend fin (dépend du temps de jeu choisi et de la date du dernier coup)
  • type : Type de partie (CAREER, TRAINING, DUEL, TOURNAMENT, LEAGUE)
  • objective : Objectif de la partie
  • curRound : Round actuel
  • curTurn : Tour actuel
  • curPlayer : Joueur dont c'est le tour. Correspond à un indice du tableau players
  • players : Liste des pseudos des joueurs participant à la partie, dans l'ordre de jeu
  • gameOver : Indique si la partie est terminée
  • arena : JSON de l'arène au moment où la partie a été sauvegardée
  • wordsPlayed : Liste des mots déjà joués au cours de cette partie
  • lastPlay : Liste ordonnée des cellules sélectionnées lors du dernier mot
  • chats : Messages échangés entre les joueurs

Mettre à jour les infos sur une partie PATCH games/{id}

Champs disponibles :

  • curRound : Round actuel
  • curTurn : Tour actuel
  • curPlayer : Joueur dont c'est le tour. Correspond à un indice du tableau players
  • players : Liste des pseudos des joueurs participant à la partie, dans l'ordre de jeu
  • gameOver : Indique si la partie est terminée
  • arena : JSON de l'arène au moment où la partie a été sauvegardée
  • lastStroke : Dernier coup joué (contenant le pseudo du joueur et la liste ordonnée des cellules sélectionnées)
  • chats : Messages échangés entre les joueurs

Cas d'utilisation :

  • Rejoindre une partie : ajouter le pseudo du joueur dans players
  • Quitter une partie : retirer le pseudo du joueur dans players
  • Jouer un mot : modifier lastStroke
  • Envoyer un message : ajouter une entrée dans chats

Supprimer une partie (fonctionnalité admin) DELETE games/{id}

Collection des mots words

Cette collection permet de gérer le dictionnaire des mots autorisés au cours d'une partie.

Ajouter un mot POST words

Ajoute un mot dans le dictionnaire. Paramètres attendus :

  • word : Mot à ajouter, en majuscules
  • status : Statut du mot (V, PV, R, PR => valid, pending validation, removed, pending removal). Si le client n'est pas administrateur, les status V et R seront forcés à PV ou PR afin de signifier que le joueur fait une suggestion d'ajout ou de suppression de mot qui devra être validée par un admin.

Retirer un mot (fonctionnalité admin) DELETE words/{word}

Supprime un mot du dictionnaire. Le mot sera définitivement supprimé, et non marqué comme removed. Pour marquer un mot comme inutilisable, utiliser PATCH words/{word} et changer son status.

Modifier le status d'un mot (fonctionnalité admin) PATCH words/{word}

Met à jour le status d'un mot. Seuls les mots ayant le statut V (valid) peuvent être joués. Paramètres attendus :

  • status : Statut du mot (V, P, R => valid, pending validation, removed)

Valider un mot

Valider un début de mot

Cette fonction permet de savoir si des mots débutant par une certaine chaîne existent.

Rechercher tous les mots commençant par une chaine