kauffinger/onoffice-laravel-adapter

使用Laravel和Saloon与onOffice API愉快交互的方式。

0.4.0 2024-05-01 17:36 UTC

This package is auto-updated.

Last update: 2024-09-08 01:37:36 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这是一个旨在使与onOffice API交互变得愉快和简单的包。我们尽力将API的所有规则在代码中尽可能地明确化。这意味着您不应能够创建无效的请求。它基于官方php sdksaloon

Banner

安装

您可以通过composer安装此包

composer require kauffinger/onoffice-laravel-adapter

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="onoffice-laravel-adapter-config"

这是已发布配置文件的内容

return [
    'token' => env('ON_OFFICE_TOKEN'),
    'secret' => env('ON_OFFICE_SECRET'),
    'base_url' => env('ON_OFFICE_BASE_URL', 'https://api.onoffice.de/api/stable/api.php'),
];

使用方法

$api = new OnOfficeApi(config('onoffice.token'), config('onoffice.secret'));
$request = new OnOfficeApiRequest();
$request->addAction(
    Action::read()
        ->address()
        ->formatOutput()
        ->outputInLanguage(Language::German)
        ->addMobileUrl()
        ->fieldsToRead('phone', 'mobile')
        ->setListLimit(200)
);

$response = $api->send($request);

或者,如果您喜欢更干净的代码,可以尝试这个

$request = OnOfficeApiRequest::with(
    Action::read()
        ->task()
        ->fieldsToRead('Eintragsdatum', 'modified')
        ->setRelatedEstateId(2)
        ->setRelatedProjectId(1)
        ->setListLimit(200)
);

$response = OnOfficeApi::for(
    config('onoffice.token'), config('onoffice.secret')
)
    ->send($request);

您可以在一个请求中轻松发送多个操作

$request = OnOfficeApiRequest::with(
    Action::read()->estate()
)->withAction(
    Action::read()->address()
);

通过自定义响应类,您可以轻松管理响应。例如,当onOffice返回HTTP状态码200,但响应包含status.code == 500时,响应不会被标记为OK

$response = OnOfficeApi::send($request);
$response->ok(); // would be false

此外,它还提供了轻松访问onOffice响应结果的方式

$response->results();
// or as a collection
$response->collectedResults();

如果您不需要完整的结果数组,因为您可能只发送了一个操作,您可以直接访问操作数据

$response->getData();
// or as a collection
$response->getCollectedData();
// get the first data array
$response->getData(0);

您可以通过调用cacheable方法来确定响应是否可缓存。它会检查请求中的每个操作并检查缓存性

$response->cacheable();

由于此SDK的目标是尽可能简化onOffice API的使用,因此许多端点仍然缺失。您仍然可以使用此库发送自定义操作

$request->addAction(
    Action::read()
        ->custom() // this will give you full control over the action, except for the action type
        ->setResourceType('estate')
        ->setResourceId(123)
        ->setParameters([
            'data' => ['Id', 'kaufpreis']
        ])
);

已知问题

  • 目前,似乎没有标识符从onOffice API返回。

未来功能

  • 尽可能安全地访问所有onOffice API端点(进行中)
  • 集成基于saloon的请求缓存(待办)
  • 为最常用的基本操作添加saloon资源类(待办)

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

请查看我们的安全策略以了解如何报告安全漏洞

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件