Download the PHP package kadiaak/rowbase-php without Composer
On this page you can find all versions of the php package kadiaak/rowbase-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package rowbase-php
rowbase-php
Connecteur PHP pour l'API REST Rowbase.
Sans dépendance à l'exécution (ext-curl + ext-json), PHP >= 8.1. Il couvre l'intégralité de l'API — tables, lecture, création, mise à jour, remplacement, suppression — et gère pour vous la pagination, le découpage des lots de dix, la limite de cinq appels par seconde, les nouvelles tentatives et la traduction des erreurs en exceptions typées.
Installation
Sans Composer :
Démarrage
Le jeton se crée dans le panneau « API tokens » de Rowbase (réservé aux administrateurs) et peut être limité à certaines tables.
Explorer le schéma
Le résultat de tables() est mis en cache en mémoire ; tables(refresh: true) force un nouvel appel.
Tables et feuilles s'adressent indifféremment par slug (contacts) ou par identifiant numérique (1).
Lire des lignes
Query construit les paramètres de l'API de façon immuable :
Un tableau brut fonctionne aussi : $sheet->list(['pageSize' => 50, 'sort' => [['field' => 'Date', 'direction' => 'desc']]]).
Pagination automatique
Une ligne précise
Filtrer
L'API Rowbase n'expose pas de filtre côté serveur : where() et findBy() parcourent les pages et filtrent en PHP. Sur une grande feuille, limitez d'abord les colonnes avec Query::fields().
L'objet Record
Écrire
Les valeurs sont converties par Rowbase selon le type de colonne, et les écritures déclenchent les synchronisations Google Sheets configurées.
Erreurs
Toutes les exceptions dérivent de Rowbase\Exception\RowbaseException.
| Exception | Statut | Types d'erreur Rowbase |
|---|---|---|
AuthenticationException |
401 | AUTHENTICATION_REQUIRED, INVALID_API_KEY |
AuthorizationException |
403 | NOT_AUTHORIZED |
NotFoundException |
404 | TABLE_NOT_FOUND, SHEET_NOT_FOUND, ROW_NOT_FOUND |
ValidationException |
422 | UNKNOWN_FIELD_NAME, TOO_MANY_RECORDS, INVALID_REQUEST_BODY |
RateLimitException |
429 | RATE_LIMIT_REACHED |
ServerException |
5xx | — |
TransportException |
— | échec réseau, aucune réponse reçue |
Limite de débit et nouvelles tentatives
Rowbase autorise cinq appels par seconde et par jeton. Le client applique un token bucket local à ce rythme, puis rejoue automatiquement :
- les
429, en respectant l'en-têteRetry-After; - les
5xxsur les lectures seulement (GET), pour ne jamais créer de doublon sur une écriture non idempotente ; - les erreurs réseau.
Le backoff est exponentiel avec gigue, plafonné par max_retry_delay. Une fois les tentatives épuisées, l'exception typée est levée.
Le limiteur est propre à l'instance de Client : avec plusieurs processus partageant le même jeton, réduisez requests_per_second en conséquence.
Configuration
Client::fromEnv() lit ROWBASE_API_KEY et, si elle existe, ROWBASE_BASE_URL.
Brancher son propre client HTTP
Toute classe implémentant Rowbase\Http\Transport fait l'affaire (voir tests/Support/FakeTransport.php pour un exemple de double de test).
Appels bruts
Pour un point d'entrée non couvert par la surface typée :
Correspondance avec l'API
| Méthode PHP | Requête HTTP |
|---|---|
tables() |
GET /tables |
list(), all(), pages(), first() |
GET /tables/{table}/{sheet}/records |
find(), findOrNull() |
GET /tables/{table}/{sheet}/records/{id} |
create(), createMany() |
POST /tables/{table}/{sheet}/records |
update(), updateMany() |
PATCH /tables/{table}/{sheet}/records |
replace(), replaceMany() |
PUT /tables/{table}/{sheet}/records |
delete(), deleteMany() |
DELETE /tables/{table}/{sheet}/records?records[]=… |
Tests
La suite tourne entièrement hors ligne grâce à FakeTransport : aucun appel réseau, aucun jeton nécessaire.
Licence
MIT.
All versions of rowbase-php with dependencies
ext-curl Version *
ext-json Version *