preprio / laravel-sdk
Prepr REST API 的 Laravel SDK。
4.1.2
2024-09-25 08:35 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.3.0
This package is auto-updated.
Last update: 2024-09-25 08:36:04 UTC
README
此 Laravel 包是 Prepr REST API 的服务提供商。
基本功能
- GitHub 上的 SDK
- 兼容 Laravel
v5x
、v6x
、v7x
、v8x
、v9x
、v10x
。 - 需要
GuzzleHttp 7.3.X
,以及从版本 3.0 开始需要 PHP 8.x。
安装
您可以将 Provider 作为 composer 包进行安装。
对于 Laravel v10x
composer require preprio/laravel-rest-sdk:"^4.0"
对于 Laravel v9x
composer require preprio/laravel-rest-sdk:"^2.0"
对于 Laravel v8x
composer require preprio/laravel-rest-sdk:"^1.3"
其他版本
composer require preprio/laravel-rest-sdk:"1.1"
发布配置
发布 prepr.php
配置
php artisan vendor:publish --provider="Preprio\PreprServiceProvider"
设置 .env 文件中的配置
您可以在 Laravel 项目的 .env 文件中设置默认配置。
PREPR_URL=https://cdn.prepr.io/
PREPR_TOKEN={{ACCESS_TOKEN}}
Laravel 本地缓存
要使用 Laravel 的缓存功能,请将以下参数添加到您的 .env 文件中。
PREPR_CACHE=true
PREPR_CACHE_TIME=1800
可选选项
PREPR_TIMEOUT=30
PREPR_CONNECT_TIMEOUT=10
发送第一个请求
让我们从获取您 Prepr 环境中的所有内容项开始。
<?php use Preprio\Prepr; $apiRequest = new Prepr; $apiRequest ->path('publications') ->query([ 'fields' => 'items' ]) ->get(); if($apiRequest->getStatusCode() == 200) { print_r($apiRequest->getResponse()); }
要获取单个内容项,请将 ID 传递给请求。
<?php use Preprio\Prepr; $apiRequest = new Prepr; $apiRequest ->path('publications/{id}', [ 'id' => '1236f0b1-b26d-4dde-b835-9e4e441a6d09' ]) ->query([ 'fields' => 'items' ]) ->get(); if($apiRequest->getStatusCode() == 200) { print_r($apiRequest->getResponse()); }
在请求中覆盖 AccessToken
授权也可以为特定请求设置 ->url('url')->authorization('token')
。
自动分页
$apiRequest = (new Prepr) ->path('publications') ->query([ 'limit' => 200 // optional ]) ->autoPaging(); if($apiRequest->getStatusCode() == 200) { dump($apiRequest->getResponse()); }
创建、更新 & 删除
POST
$apiRequest = (new Prepr) ->path('publications') ->params([ 'body' => 'Example' ]) ->post(); if($apiRequest->getStatusCode() == 201) { dump($apiRequest->getResponse()); }
PUT (更新)
$apiRequest = (new Prepr) ->path('publications') ->params([ 'body' => 'Example' ]) ->put(); if($apiRequest->getStatusCode() == 200) { dump($apiRequest->getResponse()); }
DELETE
$apiRequest = (new Prepr) ->path('publications/{id}',[ 'id' => 1 ]) ->delete(); if($apiRequest->getStatusCode() == 204) { // Deleted. }
多部分/分块上传
- 选项 1
use Illuminate\Support\Facades\Storage; $source = Storage::readStream('image.jpg'); $apiRequest = (new Prepr) ->path('assets') ->params([ 'body' => 'Example', ]) ->file($source); if($apiRequest->getStatusCode() == 200) { dump($apiRequest->getResponse()); }
- 选项 2
use Illuminate\Support\Facades\Storage; $source = Storage::get('image.jpg'); $apiRequest = (new Prepr) ->path('assets') ->params([ 'body' => 'Example', ]) ->file($source, 'image.jpg'); if($apiRequest->getStatusCode() == 200) { dump($apiRequest->getResponse()); }
调试
对于调试,您可以使用 getRawResponse()
。