graphlr/prepr-api-laravel

此包已被放弃,不再维护。作者建议使用 preprio/laravel-sdk 包。

Prepr API 的 Laravel 封装器

v1.7.0 2021-02-17 08:24 UTC

README

此 Laravel 包是 Prepr API 的封装器。

兼容 Laravel v5x, v6x, v7x, v8x。

安装

您可以通过 composer 安装此包

composer require graphlr/prepr-api-laravel

环境变量

PREPR_URL=https://api.eu1.prepr.io/
PREPR_TOKEN=ToKeN
PREPR_CACHE=true
PREPR_CACHE_TIME=1800

覆盖变量

对于所有请求

config(['prepr.url' => 'https://api.eu1.prepr.io/']);
config(['prepr.token' => 'ToKeN']);

您还可以为特定请求设置授权 ->url('url')->authorization('token')

示例

use Graphlr\Prepr\Prepr;
获取所有
$apiRequest = (new Prepr)
    ->path('tags')
    ->query([
        'fields' => 'example'
    ])
    ->get();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}
获取单个
$apiRequest = (new Prepr)
    ->path('tags/{id}',[
        'id' => 1
    ]),
    ->query([
        'fields' => 'example'
    ])
    ->get();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}
发布
$apiRequest = (new Prepr)
    ->path('tags')
    ->params([
        'body' => 'Example'
    ])
    ->post();

if($apiRequest->getStatusCode() == 201) {
    dump($apiRequest->getResponse());
}
更新
$apiRequest = (new Prepr)
    ->path('tags')
    ->params([
        'body' => 'Example'
    ])
    ->put();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}
删除
$apiRequest = (new Prepr)
    ->path('tags/{id}',[
        'id' => 1
    ])
    ->delete();

if($apiRequest->getStatusCode() == 204) {
    // Deleted.
}
A/B 测试
$apiRequest = (new Prepr)
    ->path('tags/{id}',[
        'id' => 1
    ]),
    ->query([
        'fields' => 'example'
    ])
    ->userId(session()->getId())
    ->get();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}
分块上传
$apiRequest = (new Prepr)
    ->path('assets')
    ->params([
      'body' => 'Example',
    ])
    ->file('/path/to/file.txt') // For laravel storage: storage_path('app/file.ext')
    ->post();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}
自动分页
$apiRequest = (new Prepr)
    ->path('publications')
    ->query([
        'limit' => 200 // optional
    ])
    ->autoPaging();

if($apiRequest->getStatusCode() == 200) {
    dump($apiRequest->getResponse());
}

调试

调试时,您可以使用 getRawResponse()

文档

有关所有详细信息以及完整文档,请参阅 Prepr 开发者文档。