Après avoir développé une API pour obtenir des citations de l'excellente série TV Breaking Bad, je me suis attelé à en faire de même pour un autre monstre du petit écran : Game of Thrones !

Quelques années auparavant, j'avais donc créé Breaking Bad Quotes API. Cette API retourne seulement des citations de la série TV Breaking Bad.
Je l'utilise notamment dans mon projet TweetBoxBot qui est un script Python envoyant des tweets de plusieurs sortes et dans un mini projet CLI (Breaking Bad Cli).

C'est au tour d'une autre excellente série TV d'y passer : Game of Thrones. J'ai créé une API retournant des citations des personnages de la série, mais également quelques informations sur leur maison. Cela reste simpliste mais suffisant pour le but originel.

L'API s'appelle logiquement Game of Thrones Quotes API.

Elle est écrite en Javascript (Node.js) et son code source est évidemment disponible sur le dépôt Github.

Contrairement à l'API de Breaking Bad, plusieurs fonctionnalités sont disponibles. Avec Game of Thrones Quotes API, il est possible :

  • d'avoir une citation au hasard
  • d'avoir plusieurs citations au hasard
  • d'avoir toutes ou partie des citations d'un personnage
  • de lister les maisons des personnages ayant une citation
  • d'avoir le détail d'une maison
  • de lister les personnages ainsi que leurs citations
  • d'avoir le détail d'un personnage

Toutes les méthodes sont disponibles sur le site de l'API ou dans le Readme du projet Github.
Voici quelques exemples.

Pour avoir une citation au hasard :

https://api.gameofthronesquotes.xyz/v1/random

{
  "sentence": "I know that our enemies hate each other almost as much as they hate us.",
  "character": {
    "name": "Tyrion Lannister",
    "slug": "tyrion",
    "house": {
      "name": "House Lannister of Casterly Rock",
      "slug": "lannister"
    }
  }
}

Pour obtenir les citations (deux ici) d'un personnage :

https://api.gameofthronesquotes.xyz/v1/author/tyrion/2

[
  {
    "sentence": "I'm a constant disappointment to my own father, and I have learned to live with it.",
    "character": {
      "name": "Tyrion Lannister",
      "slug": "tyrion",
      "house": {
        "name": "House Lannister of Casterly Rock",
        "slug": "lannister"
      }
    }
  },
  {
    "sentence": "You love your children. It's your one redeeming quality. That and your cheekbones.",
    "character": {
      "name": "Tyrion Lannister",
      "slug": "tyrion",
      "house": {
        "name": "House Lannister of Casterly Rock",
        "slug": "lannister"
      }
    }
  }
]

Détail d'un personnage avec ses citations :

https://api.gameofthronesquotes.xyz/v1/character/jon

[
  {
    "name": "Jon Snow",
    "slug": "jon",
    "house": {
      "slug": "stark",
      "name": "House Stark of Winterfell"
    },
    "quotes": [
      "If I fall, don't bring me back.",
      "There is only one war that matters. The Great War. And it is here.",
      "Love is the death of duty.",
      "Everything before the word \"but\" is horseshit.",
      "The war is not over. And I promise you, friend, the true enemy won't wait out the storm. He brings the storm."
    ]
  }
]

N'hésitez pas à utiliser l'API (dites-moi en commentaire dans quel projet vous l'utilisez), et d'y contribuer en ajoutant des citations (voir section Contributing du Readme) !