定制 beriyack/apiclient 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

beriyack/apiclient

最新稳定版本:v3.1.0

Composer 安装命令:

composer require beriyack/apiclient

包简介

Une bibliothèque PHP orientée objet pour interagir avec des API RESTful.

README 文档

README

Une bibliothèque PHP simple et efficace pour interagir avec des API RESTful. Elle fournit un client HTTP orienté objet et configurable pour simplifier et sécuriser vos requêtes GET, POST, PUT, et DELETE en utilisant cURL.

✨ Points Forts

  • Approche Orientée Objet : Instanciez des clients pour différentes API, chacune avec sa propre configuration.
  • Configuration Flexible : Définissez une URL de base, des en-têtes par défaut (ex: Authorization) et des options cURL pour chaque client.
  • Opérations CRUD Complètes : Supporte les méthodes HTTP GET, POST, PUT, et DELETE.
  • Gestion Automatique : Gère l'encodage des données JSON et les en-têtes Content-Type.
  • Gestion Robuste des Erreurs : Lance des exceptions claires en cas d'erreur cURL ou de code de statut HTTP invalide.

🛠️ Prérequis et Installation

  • PHP 8.0 ou supérieur
  • L'extension PHP cURL
  1. Exigence : Assurez-vous d'avoir Composer installé sur votre système.
  2. Ajoutez la dépendance à votre projet via Composer :
composer require beriyack/api-client

Cela installera la librairie dans votre dossier vendor/ et mettra à jour l'autoloader de Composer.

  1. Utilisez l'autoloader de Composer dans votre projet :
<?php
require_once 'vendor/autoload.php';

use Beriyack\Client\ApiClient;
?>

📖 Utilisation

1. Client simple (GET)

Créez une instance du client en spécifiant l'URL de base de l'API que vous souhaitez interroger.

use Beriyack\Client\ApiClient;

try {
    $client = new ApiClient('https://jsonplaceholder.typicode.com');
    
    // Récupérer des données (GET)
    $post = $client->get('/posts/1');
    print_r($post);

} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
}

2. Créer et Mettre à jour des ressources (POST / PUT)

Les méthodes post() et put() permettent d'envoyer des données, qui seront automatiquement encodées en JSON.

use Beriyack\Client\ApiClient;

try {
    $client = new ApiClient('https://jsonplaceholder.typicode.com');

    // Créer une ressource (POST)
    $newPostData = [
        'title' => 'Mon Nouveau Titre',
        'body' => 'Contenu de mon nouveau post.',
        'userId' => 1
    ];
    $createdPost = $client->post('/posts', $newPostData);
    echo "Post créé :\n";
    print_r($createdPost);

    // Mettre à jour une ressource (PUT)
    $updatedPostData = ['title' => 'Titre Mis à Jour'];
    $updatedPost = $client->put('/posts/1', $updatedPostData);
    echo "\nPost mis à jour :\n";
    print_r($updatedPost);
} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
}

3. Supprimer une ressource (DELETE)

use Beriyack\Client\ApiClient;

try {
    $client = new ApiClient('https://jsonplaceholder.typicode.com');
    $response = $client->delete('/posts/1');
    
    // Une réponse vide ou un objet vide indique généralement un succès
    echo "Ressource supprimée avec succès.";
    print_r($response);

} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
}

4. Client avec authentification et options cURL

Le constructeur vous permet de pré-configurer le client avec des en-têtes (par exemple, pour une clé d'API) et des options cURL qui seront utilisées pour chaque requête.

use Beriyack\Client\ApiClient;

try {
    $headers = [
        'Authorization' => 'Bearer VOTRE_TOKEN_SECRET',
        'Accept'        => 'application/json',
    ];

    // Exemple pour un environnement de dev local qui nécessite un certificat spécifique
    $curlOptions = [
        CURLOPT_CAINFO => __DIR__ . '/path/to/your/cacert.pem',
        CURLOPT_TIMEOUT => 15, // Timeout de 15 secondes pour chaque requête
    ];

    $client = new ApiClient('https://api.exemple.com/v2', $headers, $curlOptions);

    // Chaque requête utilisera automatiquement le token et les options cURL
    $userData = $client->get('/user');
    print_r($userData);
} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
}

5. Envoyer des données avec un Content-Type spécifique

Par défaut, le client envoie les données des requêtes POST et PUT au format application/json. Cependant, vous pouvez spécifier un autre Content-Type (comme application/x-www-form-urlencoded pour l'authentification OAuth) en le passant dans les en-têtes. Le client encodera automatiquement les données dans le bon format.

use Beriyack\Client\ApiClient;

try {
    // Ce client est utilisé pour obtenir un token OAuth
    $authClient = new ApiClient('https://oauth.service.com');

    $data = [
        'grant_type'    => 'client_credentials',
        'client_id'     => 'YOUR_CLIENT_ID',
        'client_secret' => 'YOUR_CLIENT_SECRET'
    ];

    $headers = [
        'Content-Type' => 'application/x-www-form-urlencoded'
    ];

    $tokenResponse = $authClient->post('/token', $data, [], $headers);
    print_r($tokenResponse);
} catch (Exception $e) {
    echo "Erreur : " . $e->getMessage();
}

🤝 Contribution

Les contributions sont les bienvenues ! Si vous avez des idées d'améliorations, de nouvelles fonctionnalités ou des corrections de bugs, n'hésitez pas à ouvrir une issue ou à soumettre une pull request.

📄 Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

📧 Contact

Pour toute question ou suggestion, vous pouvez me contacter via Beriyack.

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-20