PHPackages                             beriyack/apiclient - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. beriyack/apiclient

ActiveLibrary[HTTP &amp; Networking](/categories/http)

beriyack/apiclient
==================

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

v3.1.0(7mo ago)03MITPHPPHP &gt;=8.1

Since Oct 20Pushed 6mo agoCompare

[ Source](https://github.com/Beriyack/api-client)[ Packagist](https://packagist.org/packages/beriyack/apiclient)[ RSS](/packages/beriyack-apiclient/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (1)Versions (6)Used By (0)

🚀 API Client
============

[](#-api-client)

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
--------------

[](#-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
----------------------------

[](#️-prérequis-et-installation)

- PHP 8.0 ou supérieur
- L'extension PHP `cURL`

1. **Exigence :** Assurez-vous d'avoir [Composer](https://getcomposer.org/) 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.

3. **Utilisez l'autoloader de Composer** dans votre projet :

```

```

---

📖 Utilisation
-------------

[](#-utilisation)

### 1. Client simple (GET)

[](#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)

[](#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)

[](#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

[](#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

[](#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
--------------

[](#-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
---------

[](#-licence)

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

---

📧 Contact
---------

[](#-contact)

Pour toute question ou suggestion, vous pouvez me contacter via [Beriyack](https://github.com/Beriyack).

---

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance65

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

210d ago

Major Versions

v1.0.1 → v2.0.02025-10-20

v2.0.0 → v3.0.02025-10-20

### Community

Maintainers

![](https://www.gravatar.com/avatar/99d7dc03ea17af07f9057bf3066dfce2ba0fc5f2e83193fb3908da90d9b63022?d=identicon)[Beriyack](/maintainers/Beriyack)

---

Top Contributors

[![Beriyack](https://avatars.githubusercontent.com/u/33500849?v=4)](https://github.com/Beriyack "Beriyack (9 commits)")

---

Tags

httpphpapiclientrestcurlcrud

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/beriyack-apiclient/health.svg)

```
[![Health](https://phpackages.com/badges/beriyack-apiclient/health.svg)](https://phpackages.com/packages/beriyack-apiclient)
```

###  Alternatives

[ismaeltoe/osms

PHP library wrapper of the Orange SMS API.

4540.0k](/packages/ismaeltoe-osms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
