zuruuh / blagues-api

blagues-api 的 PHP 封装

2.0.0 2023-07-13 13:41 UTC

This package is auto-updated.

Last update: 2024-09-11 19:35:59 UTC


README

Blagues API 是一个公开、法语和开源的 API,任何人都可以访问和贡献大量各种类型的笑话。此 Packagist 包允许任何人在 PHP 中非常简单地与 API 交互,采用面向对象的方法。

身份验证

您可以在官方网站 https://www.blagues-api.fr 上点击“登录”按钮来获取您的身份验证令牌。

示例

以下是一些简单的示例,说明您如何与 API 交互。

<?php

declare(strict_types=1);

use BlaguesApi\Factory\BlaguesApiFactory;

$blaguesApi = BlaguesApiFactory::create($_ENV['TOKEN']);

$joke = $blaguesApi->getRandom(); // Renvoies une instance de la classe BlaguesApi\Model\Joke

var_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.
<?php

declare(strict_types=1);

use BlaguesApi\Model\Joke;
use BlaguesApi\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`.

使用 Symfony 的示例

<?php

declare(strict_types=1);

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use BlaguesApi\Factory\BlaguesApiFactory;

class JokeController extends AbstractController
{
    #[Route('/joke')]
    public function jokeAction(#[Autowire('%env(BLAGUES_API_TOKEN)%')] string $blaguesApiToken): Response
    {
        $blaguesApi = BlaguesApiFactory::create($blaguesApiToken);

        $joke = $blaguesApi->getRandom();

        return $this->render('template/joke.html.twig', [
            'joke' => $joke,
        ]);
    }
}

使用 Symfony 的示例:依赖注入 + 工厂

# config/services.yaml
services:
  BlaguesApi\BlaguesApiInterface:
    factory: ['BlaguesApi\BlaguesApiFactory', create]
    arguments: ['%env(BLAGUES_API_TOKEN)%']
<?php
// src/Controller/JokeController

declare(strict_types=1);

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use BlaguesApi\BlaguesApiInterface;

class JokeController extends AbstractController
{
    #[Route('/joke')]
    public function jokeAction(BlaguesApiInterface $blaguesApi): Response
    {
        $joke = $blaguesApi->getRandom();

        return $this->render('template/joke.html.twig', [
            'joke' => $joke,
        ]);
    }
}

贡献

要为项目做出贡献,请参阅 contributing.md