metarisc / metarisc-php
Metarisc PHP 库
Requires
- php: ^8.0
- caseyamcl/guzzle_retry_middleware: ^2.8
- composer/ca-bundle: ^1.3
- guzzlehttp/guzzle: ^7.0
- kamermans/guzzle-oauth2-subscriber: ^1.0
- kevinrob/guzzle-cache-middleware: ^5.1
- pagerfanta/pagerfanta: ^v4.2.0
- psr/simple-cache: ^1.0|^2.0|^3.0
- symfony/options-resolver: ^5.2
Requires (Dev)
- fakerphp/faker: ^1.23
- kdubuc/php-cs-fixer-rules: ^1.0
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.23
This package is auto-updated.
Last update: 2024-09-08 16:09:24 UTC
README
Metarisc PHP 库提供了一个简单实用的接口,可以从PHP编写的应用程序中访问Metarisc API。它包含一组用于API所有资源的类和函数。
兼容性
最低PHP版本8.0。
Composer
您可以使用Composer安装此库。执行以下命令:
composer require metarisc/metarisc-php
要使用此库,请使用Composer 自动加载
require_once 'vendor/autoload.php';
使用方法
使用OAuth2进行初始化
客户端凭证流
要使用客户端凭证授权流
$metarisc = new \Metarisc\Metarisc([ 'metarisc_url' => 'https://api.metarisc.fr', // Optionnel 'client_id' => 'your_client_id', 'client_secret' => 'your_client_secret', // Optionnel ]); $metarisc->authenticate('oauth2:client_credentials', [ 'scope' => 'openid', // Optionnel 'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel ]);
授权码流
要使用授权码授权流,您需要通过将用户代理重定向到授权端点来获取一个代码。客户端必须包含其客户端ID、请求的作用域、状态以及授权服务器在访问批准(或拒绝)后应将用户代理重定向到的URI。
为了简化生成指向Metarisc OAuth2表单的URI
$metarisc = \Metarisc\Auth\OAuth2::authorizeUrl([ 'client_id' => 'xx', 'redirect_uri' => 'xx', // Optionnel 'scope' => 'xx', // Optionnel 'state' => 'xx', // Optionnel ]);
当用户接受请求时,授权服务器将用户代理重定向到客户端提供的重定向URI,并使用带有授权代码的HTTP重定向响应。然后您可以使用此授权代码来初始化客户端。
$metarisc = new \Metarisc\Metarisc([ 'metarisc_url' => 'https://api.metarisc.fr', // Optionnel 'client_id' => 'your_client_id', 'client_secret' => 'your_client_secret', // Optionnel ]); $metarisc->authenticate('oauth2:authorization_code', [ 'code' => 'your_authorization_code', 'scope' => 'openid', // Optionnel 'access_token_url' => 'https://id.metarisc.fr/auth/realms/production/protocol/openid-connect/token', // Optionnel 'redirect_uri' => 'https://your_redirect_uri', // Optionnel 'enable_refresh_token_grant_type' => false, // Optionnel ]);
简单请求
要向Metarisc发出请求,您可以使用request函数。
示例
$options = []; $response = $metarisc->request('GET', '/@moi', $options);
获得的响应是一个PSR7 Response对象。
注意:可用的请求选项是Guzzle的选项(请参阅https://docs.guzzlephp.org/en/stable/request-options.html)。
分页
要获取分页的Metarisc结果(请参阅文档),您可以使用一个简化其使用的函数。
$paginator = $metarisc->pagination('GET', '/pei', ['query' => ['est_indisponible' => true]]); $paginator->setMaxNbPages(75); $paginator->setCurrentPage(3); $nbResults = $paginator->getNbResults(); $currentPageResults = $paginator->getCurrentPageResults();
获得的分页器是一个Pagerfanta对象。
要要求分页器返回业务对象,您可以通过传递model_class
选项,以便它可以反序列化页面结果。
注意:可用的请求选项是Guzzle的选项(请参阅https://docs.guzzlephp.org/en/stable/request-options.html)。