La documentation de l'API est de nouveau accessible

05/05/2018

Documentation de l'API

L'API est un système composé en deux parties, la première permettra au serveur de recevoir des notifications d'actions, la seconde permettra au contraire de demander des informations à  RTS concernant son serveur.
 
 
1. Notifications
 
Il est possible de renseigner des champs dans la configuration du serveur permettant à  rotopserv d'exécuter une page sur le serveur cible en donnant quelques informations. Ce système pourra être utilisé afin de bénéficier d'un retour lorsqu'un utilisateur exécute une action (afin de le récompenser par exemple).
Différentes actions notifiés:

  • Lorsqu'un joueur exécute un vote pour le serveur.
  • Lorsqu'un joueur donne une note en commentant le serveur.
  • Lorsqu'un joueur édite un commentaire.
  • Lorsqu'un joueur supprime un commentaire.

La requête envoyée au serveur contiendra la liste des objets suivants :

  • version - Contiendra la version de l'API (en cas de changement de protocole de celle-ci).
  • action L'action qui appelle la requête ("vote", "comment-create", "comment-edit", "comment-remove").
  • pseudo - Le nom de l'utilisateur qui envoie la requête.
  • key - La valeur de la clé privée dans les configs du serveur afin d'éviter les hacks.

Dans le cas de commentaire, le commentaire et la note ne sera pas envoyée au serveur afin de garder l'intégrité de l'utilisateur. On souhaite notamment éviter que le serveur récompense uniquement les joueurs qui donnent une bonne note. La requête n'est RESTful, c'est uniquement une méthode POST avec les arguments envoyés à  votre serveur, Exemple :

<?php

  // Notre clé privée (disponible dans la page édition de serveur)
  define('API_KEY', 'vOMcAuioac0GHIuAy3LATsWOh4InzqjIltFQLIsCy/c5Pnp+fAsFJ9bSWgAvgQn75nizGkT4OwKjpEip12H/RA==');

  // Uniquement sur requête POST
  if (empty($_POST) || empty($_POST['key']) || empty($_POST['action'])) {
    exit();
  }

  // Requête invalide, la clé privée ne correspond pas (hack ?)
  if ($_POST['key'] !== API_KEY) {
    exit;
  }

  // On récupère les données
  $action = $_POST['action'];
  $pseudo = empty($_POST['pseudo']) ? '' : $_POST['pseudo'];

  // Votre fonction custom pour gérer les choses, exemples :
  // - Donner des objets
  // - Ajouter des crédits
  // - Faire des stats...
  // - etc.
  processAction($action, $pseudo);
?>

2. Requêtes API
 
Le serveur pourra envoyée des requêtes à  rotopserv pour récupérer certaines informations. Cette méthode existait déjà  sous forme de tableau HTML. Il est dorénavant possible d'exporter ce contenu dans divers autres formats :

  • JSON
  • XML
  • HTML
  • TEXT

A l'heure actuelle, seul les votes peuvent être récupérés. Ces requêtes nécessitent la clé publique pour être utilisées.


Le lien se présente de la sorte : http://www.rotopserv.net/exports/<nom du serveur>/<clef publique>.<format>

Par exemple:
Le lien du serveur est : http://www.rotopserv.net/serveurs/myroserver
Ma clé publique est : 48fa5166192f95d95e768413d03f94

Différents liens concernant les votes :
http://www.rotopserv.net/exports/myroserver/48fa5166192f95d95e768413d03f94.html
http://www.rotopserv.net/exports/myroserver/48fa5166192f95d95e768413d03f94.json
http://www.rotopserv.net/exports/myroserver/48fa5166192f95d95e768413d03f94.xml
http://www.rotopserv.net/exports/myroserver/48fa5166192f95d95e768413d03f94.txt

Mise à jour, il est maintenant possible de spécifier une date dans l'URL pour récupérer les votes des mois précédents.

 

Le lien se compose comme suivant: 

http://www.rotopserv.net/exports/<nom du serveur>/<date YYYYMM>/<clef publique>.<format>

Exemple pour récupérer les votes du mois de mai : 

http://www.rotopserv.net/exports/myroserver/201505/48fa5166192f95d95e768413d03f94.html