kauffinger / onoffice-laravel-adapter
使用Laravel和Saloon与onOffice API愉快交互的方式。
0.4.0
2024-05-01 17:36 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- saloonphp/laravel-plugin: ^3.0
- saloonphp/saloon: ^3.5
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel-shift/cli: ^0.2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- rector/rector: ^0.18.0
This package is auto-updated.
Last update: 2024-09-08 01:37:36 UTC
README
这是一个旨在使与onOffice API交互变得愉快和简单的包。我们尽力将API的所有规则在代码中尽可能地明确化。这意味着您不应能够创建无效的请求。它基于官方php sdk和saloon。
安装
您可以通过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)。有关更多信息,请参阅许可证文件