sminnee/stitchdata-php

StitchData.com 导入API的PHP SDK

0.2.1 2021-02-12 02:24 UTC

This package is auto-updated.

Last update: 2024-09-12 10:08:26 UTC


README

StitchData.com 导入API的 导入API 的PHP SDK。

安装

这是一个 Composer 库,可以使用 composer require 安装。当前版本为 ^0.1

composer require sminnee/stitchdata-php:^0.1

用法

new StitchApi(string $clientId, string $accessToken)

Sminnee\StitchData\StitchApi 类提供了对API的访问。其构造函数接受两个参数,这些参数在 导入API文档 中有描述。

use Sminnee\StitchData\StitchApi;
$api = new StitchApi(getenv('STITCHDATA_CLIENT_ID'), getenv('STITCHDATA_ACCESS_TOKEN'));

StitchApi::validate(array $data = null, $includeClientId = true)

验证连接是否正常以及您的凭证是否正确。

  • 验证请求的内容($data)。它必须是一个包含映射的数组。
  • 如果省略了$data,将提供模拟请求,包括客户端ID。
  • 如果$includeClientId为true,则将在数据中的每条记录中添加一个client_id属性,除非它已经指定。
// Throws an exception if there's an issue with our connection
$api->validate();

StitchApi::pushRecords(string $tableName, array $keyNames, iterable $records, int $batchSize = 100, ?callable $onBatchSent = null)

将多条记录以1或多个批次的形式推送到API。

  • $tableName 是您数据仓库中的表名,您希望StitchData创建和/或写入该表。它将在对API的请求中填充 table_name
  • $keyNames 是您想共同使用的记录键数组,用作主键。它将在对API的请求中填充 key_names
  • $records 是记录的数组或迭代器,其中每个记录都是一个映射。这是要更新的数据。
  • $batchSize,默认为100,是单个API请求中可包含的最大记录数。
  • $onBatchSent,一个回调,将在每次成功的API调用时传递所有已发送的记录的数组。当传递生成器数据时,这特别有用,因为您可以在不单独迭代它的情况下对数据进行后续使用。

您可以使用的数据类型由 Transit库的默认类型映射 决定。值得注意的是,您应该使用Datetime对象来表示日期/时间。

// Push 2 records to the StitchData, upserting in your data warehouse, and creating the test_peopel table if needed
$api->pushRecords(
    'test_people', 
    [' id' ],
    [
        [
            "id" => 1,
            "first_name" => "Sam",
            "last_name" => "Minnee",
            "num_visits" => 3,
            "date_last_visit" => new Datetime("2018-06-26"),
        ],
        [
            "id" => 2,
            "first_name" => "Ingo",
            "last_name" => "Schommer",
            "num_visits" => 6,
            "date_last_visit" => new Datetime("2018-06-27"),
        ]
   ]
);

StitchApi::apiCall($subUrl, $data, $includeClientId = true)

对StitchData REST API的原始调用。尽可能使用上述方法,但这允许访问SDK尚未支持的新的API行为。

序列生成

序列ID是与API交互的重要部分。pushRecords()会自动通过以下机制生成序列ID。

  • 第一次请求将使用序列ID为time() * 1000
  • 后续请求将使用序列ID + 1 或 time() * 1000 中的较大值。

如果您希望手动生成自己的序列ID,则必须使用apiCall方法,但请提出一个github问题,描述您的用例!