yoanbernabeu/airtable-client-bundle

Airtable API 简单客户端

1.1.0 2023-04-02 22:29 UTC

This package is auto-updated.

Last update: 2024-09-03 15:03:05 UTC


README

Static code analysis Testing

Airtable 客户端包是一个尝试使 Airtable API 更易于使用的 Symfony 包。

  • 从表中检索数据,可选择视图
  • 通过 ID 检索记录

安装

Airtable 客户端包需要 PHP 7.4+ 和 Symfony 5.2+。

使用 Composer 和 Symfony Flex 安装此包

composer require yoanbernabeu/airtable-client-bundle

要配置 Airtable 客户端包,请创建一个 airtable_client.yaml 文件在 config/packages/ 中,并包含以下信息

airtable_client:
  key:
  id:

要找到您的 Airtable 基础 ID,请访问您的 API 文档 并查看 简介 部分。

Airtable ID

要找到您的 Airtable API 密钥,请访问您的 账户选项 并在 API 部分中进行搜索。

Airtable KEY

用法

查找

use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $records = $airtableClient->findAll('tableName', 'viewName', Foo::class);
        
        foreach($records as $record) {
            /** @var Foo $foo */
            $foo = $record->getFields();
            
            echo $foo->bar;
        }
        
        $airtableClient->findBy('tableName', 'fieldName', 'value', Foo::class);      
          
        $record = $airtableClient->find('tableName', 'id');
        
        /** @var Foo $foo */
        $foo = $record->getFields();
            
        echo $foo->bar;
        
        $airtableClient->findLast('tableName', 'fieldName');

        $airtableClient->add(
            'tableName',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}

添加

use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $airtableClient->add(
            'tableName',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}

编辑

use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class Foo
{
    public int $id;
    public string $bar;
}

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        $airtableClient->update(
            'tableName',
            'recordId',
            [
                'id' => 1,
                'bar' => 'lorem ipsum',
                Foo::class
            ]
        );
    }

    // ...
}

创建表单

use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;
use Symfony\Component\HttpFoundation\Request;

class FooController
{
    public function bar(AirtableClientInterface $airtableClient, Request $request)
    {
        $form = $airtableClient->createForm([
            'Name' => TextType::class,
            'text' => TextType::class,
            'Submit' => SubmitType::class
        ]);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            $data = $form->getData();
            $airtableClient->add('test', $data);
        }
        return $this->render('bar.html.twig', [
            'form' => $form->createView()
        ]);
    }

    // ...
}

元数据

通过其 元数据 API 获取 Airtable 的元数据轻松访问

use Yoanbernabeu\AirtableClientBundle\AirtableClientInterface;

class FooController
{
    public function bar(AirtableClientInterface $airtableClient)
    {
        // Get Metadata for All Tables
        $tablesMeta = $airtableClient->getTablesMetadata();

        // Get Metadata for One Table
        $tableMeta = $airtableClient->getTableMetadata('TableName');

    // ...
}

许可证

查看捆绑的 LICENSE 文件。