Skip to content

Documentation API

Maëlys Bühler edited this page Dec 7, 2023 · 13 revisions

Routes Standard

Page principale

GET /
Description Affiche la page principale (La page de jeu)
Type du résultat HTML/CSS
Contrôleur -
Vue game.index

Song Requests

GET /song_requests/create
Description Affiche le formulaire de proposition de musique
Type du résultat HTML
Contrôleur RequestController
Vue request.create
Paramètres
Réussite
Echec
POST /song_requests
Description Valide le formulaire de proposition
Type du résultat Redirection
Contrôleur RequestController
Vue
Paramètres song_name: string ; artist_name: string
Réussite Redirection /
Echec Redirection /song_requests/create

Routes AJAX

Savoir si le jeu à déjà commencé

POST /has_game_started
Description Cette route indique si la session existe et que la game est lancée
Type du résultat JSON
Contrôleur GameController
Vue
Paramètres

Exemple de réponse

{
"is_started":true
}

Obtention des champs recherché

POST /start_game
Description Cette route permet d'obtenir les informations initiales sur la musique à deviner
Type du résultat JSON
Contrôleur SongController
Vue
Paramètres

Exemple de réponse

{
"title_length":16,
"artist_length":8,
"album_length":14,
"nb_artist_genre":4
}

Arrêter la partie

POST /end_game
Description Arrête la partie.
Type du résultat JSON
Contrôleur GameController
Vue
Paramètres Directement dans l'URL: search_string

Réponse vide, code 204 no content

Obtention des musiques dont le nom commence par une string donnée

GET /song_beginning_with/{search_string}
Description Obtient les musiques commençant par le string donné
Type du résultat JSON
Contrôleur SongController
Vue
Paramètres

Exemple de réponse

[
{"id":2116,
"spotify_id":"4RVwu0g32PAqgUiJoXsdF8",
"year":2021,
"track_name":"Happier Than Ever",
"track_popularity":88,
"album_name":"Happier Than Ever",
"album_id":1513,
"artist_name":"Billie Eilish",
"artist_id":713,
"duration_ms":298899},
...
]

Obtention du tableau de comparaison de musique

GET /comparison_with_answer_song
Description Obtient les musiques commençant par le string donné
Type du résultat JSON
Contrôleur RequestController
Vue
Paramètres Directement dans l'URL: search_string

Exemple de réponse

Réussite

{
"isSame":false,
"artist_comparison":null,
"album_comparison":null,
"year_comparison":1,
"duration_ms_comparison":-1,
"loudness_comparison":1,
"danceability_comparison":1,
"energy_comparison":1,
"key_comparison":-1,
"tempo_comparison":1,
"acousticness_comparison":-1,
"speechiness_comparison":1,
"common_genres":[{"genre_id:":2,"genre_name":"pop"},{"genre_id:":17,"genre_name":"dance pop"}] "artist_genres":[{"genre_id:":2,"genre_name":"pop"},{"genre_id:":17,"genre_name":"dance pop"},{"genre_id:":35,"genre_name":"edm"}] "popularity_comparison":1,
"year":2010,
"duration_ms":234653,
"loudness":-3.73,
"danceability":0.79,
"energy":0.75,
"key":0,
"tempo":125.01,
"acousticness":0,
"speechiness":0.06,
"popularity":77,
"name":"California Gurls",
"artist_name":"Katy Perry",
"album_name":"Teenage Dream: The Complete Confection",
"nb_genres":2, "spotify_id":"AJ33HAK2K3J39A9A" }

Echec

{"status":"error","message":"No answer song in session."}

Explication de la réponse:

Retourne un tableau des points communs entre les chansons, avec les éléments suivants:

  • isSame: booléen - vrai si les chansons sont identiques.
  • artist_comparison: int|null - identifiant de l'artiste si les chansons ont le même artiste, sinon null.
  • album_comparison: int|null - identifiant de l'album si les chansons ont le même album, sinon null.
  • year_comparison: int - 0 s'il s'agit de la même année, 1 si la réponse est plus récente, -1 si la réponse est plus ancienne.
  • duration_ms_comparison: int - 0 si la durée est la même, 1 si la réponse est plus longue, -1 si la réponse est plus courte.
  • loudness_comparison: int - 0 si la sonorité est la même, 1 si la réponse est plus forte, -1 si la réponse est plus douce.
  • danceability_comparison: int - 0 si la danseabilité est la même, 1 si la réponse est plus dansante, -1 si la réponse est moins dansante.
  • energy_comparison: int - 0 si l'énergie est la même, 1 si la réponse est plus énergique, -1 si la réponse est moins énergique.
  • key_comparison: int - 0 si la tonalité est la même, 1 si la réponse est dans une tonalité plus élevée, -1 si la réponse est dans une tonalité plus basse.
  • tempo_comparison: int - 0 si le tempo est le même, 1 si la réponse est plus rapide, -1 si la réponse est plus lente.
  • acousticness_comparison: int - 0 si l'acoustique est la même, 1 si la réponse est plus acoustique, -1 si la réponse est moins acoustique.
  • speechiness_comparison: int - 0 si la parole est la même, 1 si la réponse est plus parlée, -1 si la réponse est moins parlée.
  • comment_genres: tableau - tableau des genres communs entre les artistes.
  • popularity_comparison: int - 0 si la popularité est la même, 1 si la réponse est plus populaire, -1 si la réponse est moins populaire.
  • year: int - année de la chanson donnée.
  • duration_ms: int - durée de la chanson donnée en millisecondes.
  • loudness: float - sonorité de la chanson donnée en décibels.
  • danceability: float - danseabilité de la chanson donnée.
  • energy: float - énergie de la chanson donnée.
  • key: int - tonalité de la chanson donnée.
  • tempo: float - tempo de la chanson donnée.
  • acousticness: float - acoustique de la chanson donnée.
  • speechiness: float - parole de la chanson donnée.
  • popularity: int - popularité de la chanson donnée.
  • name: chaîne de caractères - nom de la chanson donnée.
  • artist_name: chaîne de caractères - nom de l'artiste de la chanson donnée.
  • album_name: chaîne de caractères - nom de l'album de la chanson donnée.
  • nb_genres: int - nombre de genres de l'artiste de la chanson de réponse.
  • artist_genres: array - liste des genres de la chanson donnée.

Obtention d'une lettre de la musique réponse

POST /hint
Description Obtient le charactère demandé du titre de la réponse
Type du résultat JSON
Contrôleur SongController
Vue
Paramètres Dans le corps de la requête: index => index du charactère que l'on souhaite obtenir.

Exemple de réponse:

{ index: 1, hint: "a" }

Obtention du nombre d'essai utilisé pour la musique actuellement recherchée, ou la dernière musique recherchée

POST /nb_tries
Description Retourne le nombre d'essai actuel
Type du résultat JSON
Contrôleur GameController

Exemple de réponse:

{
nb_tries: 3
}

Clone this wiki locally