koba / informat-php-client
informat API 的 PHP 封装器
Requires
- php: ^8.1.0
- json-mapper/json-mapper: ^2.21
- php-http/discovery: ^1.19
- psr/http-client-implementation: *
- psr/http-factory-implementation: *
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
This package is auto-updated.
Last update: 2024-09-04 14:06:36 UTC
README
Informat 学校软件 API 的 PHP 客户端库。此客户端允许您
- 获取学生信息
- 获取注册信息
- 创建新的预注册
安装
您可以通过 composer 简单地安装此库
composer require koba/informat-php-client
此库还需要 PSR-17 和 PSR-18 实现。如果这些尚未包含在您的项目中,您可以安装 Guzzle 7 来满足此要求(尽管任何其他实现都将正常工作)
composer require guzzlehttp/guzzle
使用方法
此库建立在 3 个主要 '层' 上
Informat
类,使用您的客户端 ID 和密钥进行实例化。- 目录,这是 api 调用的逻辑组。您可以通过使用
Informat
类提供的方 法获取这些目录。 - API 调用,您可以通过使用目录提供的方 法进行实例化。
下面的代码是一个快速示例,说明如何获取学生信息
use Koba\Informat\Informat; use Koba\Informat\Scopes\AllScopesStrategy; $informat = new Informat( 'your-client-id', 'your-client-secret', new AllScopesStrategy('000001', '000002', '000003'), ); $informat ->students() ->getStudents('000001') ->send();
这将返回一个包含 Student
对象的数组,该对象具有类型化(并具有文档)的属性。
作用域
如上所示,创建 Informat
对象相对简单。作用域参数可能需要一些额外的解释。
在上面的示例中,您看到我们向构造函数传递了一个 AllScopesStrategy
对象。这是一种让 API 客户端知道我们想要请求哪些作用域的方法,这直接影响您将有权执行的 API 调用。此库提供了 AllScopesStrategy
,它将请求所有可能的作用域,以及 SpecificScopesStrategy
,它允许您指定将请求的作用域。两者都需要您作为参数传递所有要访问的学校的教育机构编号。后者可能更适合,如果您的客户端没有权限访问所有作用域,或者出于安全原因希望限制功能。
您还可以通过实现 ScopeStrategyInterface
创建自己的作用域策略。
调用
在管理调用时应遵循一些 '规则'。
- 当使用目录上的方法创建调用时,必须将 API 调用所需的全部参数传递给函数。教育机构编号始终是第一个参数,因为它对所有 API 调用都是必需的。
- 可以使用 API 调用上的设置器设置所有可选参数。
- API 调用上的设置器返回调用本身,这意味着您可以轻松地将它们链接在一起。
- API 调用始终使用
send
方法执行。
以下是一个说明这些点的示例
$informat ->students() ->getStudent( '000001', // institute number 'bd26bb65-f54a-488d-866b-e1f9927d6be5' // student id ) ->setReferenceDate(new DateTime()) ->send();
高级
Informat
对象有一些高级设置选项。您可以传递一个 AccessTokenManagerInterface
对象,这允许您实现自己的访问令牌缓存解决方案。其余的构造函数可以用于传递 psr-18 客户端接口和 psr-17 HTTP 响应工厂。如果省略这些选项,则库将自动发现任何合适的实现。