Blagues API est un api public, français, et Open-Source, qui permet a n'importe qui d'accéder et de contribuer à une vaste collections de blagues en tous genres. Ce paquet packagist permet à n'importe qui d'intéragir avec l'api très simplement en php avec une approche orientée objet.
Vous pouvez récupérer votre token d'authentification sur le site officiel https://www.blagues-api.fr en cliquant sur le bouton "Connexion"
Voici quelques exemples simples de comment vous pouvez intéragir avec l'api.
<?phpdeclare(strict_types=1);
useBlaguesApi\Factory\BlaguesApiFactory;
$blaguesApi = BlaguesApiFactory::create($_ENV['TOKEN']);
$joke = $blaguesApi->getRandom(); // Renvoies une instance de la classe BlaguesApi\Model\Jokevar_dump($joke->getJoke()); // Renvoie le contenu de la blague.var_dump($joke->getAnswer()); // Renvoie la réponse à la blague si il y en a une.<?phpdeclare(strict_types=1);
useBlaguesApi\Model\Joke;
useBlaguesApi\Factory\BlaguesApiFactory;
$blaguesApi = BlaguesApiFactory::create($_ENV['TOKEN']);
$joke = $blaguesApi->getById(1234);
dump($joke->getId()); // renvoies 1234$joke = $blaguesApi->getRandom([Joke::TYPE_DARK]); // Récuperes une blague aléatoire de n'importe quel type excepté `Joke::TYPE_DARK`.$joke = $blaguesApi->getByType(Joke::TYPE_DEV); // Récuperes une blague aléatoire de type `Joke::TYPE_DEV`.Exemple avec Symfony
<?phpdeclare(strict_types=1);
namespaceApp\Controller;
useSymfony\Bundle\FrameworkBundle\Controller\AbstractController;
useSymfony\Component\HttpFoundation\Response;
useSymfony\Component\Routing\Annotation\Route;
useBlaguesApi\Factory\BlaguesApiFactory;
class JokeController extends AbstractController
{
#[Route('/joke')]
publicfunctionjokeAction(#[Autowire('%env(BLAGUES_API_TOKEN)%')] string$blaguesApiToken): Response
{
$blaguesApi = BlaguesApiFactory::create($blaguesApiToken);
$joke = $blaguesApi->getRandom();
return$this->render('template/joke.html.twig', [
'joke' => $joke,
]);
}
}Exemple Symfony avec injection de dépendance + factory
# config/services.yamlservices:
BlaguesApi\BlaguesApiInterface:
factory: ['BlaguesApi\BlaguesApiFactory', create]arguments: ['%env(BLAGUES_API_TOKEN)%']<?php// src/Controller/JokeControllerdeclare(strict_types=1);
namespaceApp\Controller;
useSymfony\Bundle\FrameworkBundle\Controller\AbstractController;
useSymfony\Component\HttpFoundation\Response;
useSymfony\Component\Routing\Annotation\Route;
useBlaguesApi\BlaguesApiInterface;
class JokeController extends AbstractController
{
#[Route('/joke')]
publicfunctionjokeAction(BlaguesApiInterface$blaguesApi): Response
{
$joke = $blaguesApi->getRandom();
return$this->render('template/joke.html.twig', [
'joke' => $joke,
]);
}
}Pour contribuer au projet, merci de jeter un oeil à contributing.md.