endeavour/groeigids-api-client

用于导入 GroeiGids 文章的 API 客户端

0.1.0 2024-05-17 08:02 UTC

This package is auto-updated.

Last update: 2024-09-21 09:50:37 UTC


README

Groeigids API 客户端是一个 PHP 库,用于与 Elkander Groeigids API 交互,便于获取和管理文章和主题。API 的 Swagger 文档可以在这里找到。

特性

  • 从 Groeigids API 获取文章和主题
  • API 响应的 JSON 模式验证
  • 支持查询参数和排序
  • 自定义异常用于错误处理

要求

  • PHP 8.1+
  • Composer
  • Groeigids API 的有效 API 密钥
  • PSR-18 兼容的 HTTP 客户端
  • PSR-17 兼容的 HTTP 工厂实现

安装

要安装 Groeigids API 客户端,请使用 Composer

composer require endeavour/groeigids-api-client

配置

要运行集成测试,应在项目的根目录下创建一个 .env 文件,内容如下

GROEIGIDS_API_KEY=your-api-key-here

使用方法

要使用 Groeigids API 客户端,创建一个 GroeigidsApiClient 类的实例

use Endeavour\GroeigidsApiClient\Infrastructure\HttpClient\GroeigidsClient;

$client = new GroeigidsClient(
    ClientInterface,
    RequestFactoryInterface,
    new ResponseDataBuilder(),
    new ResponseValidator(new Opis\Validator()),
    getenv('GROEIGIDS_API_KEY')
);

现在获取文章和主题就像调用 fetchArticlesfetchThemeArticles 方法一样简单

$articles = $client->fetchArticles();
$themes = $client->fetchThemeArticles();

fetchArticlesfetchThemeArticles 方法接受一个可选的查询参数数组

$articles = $client->fetchArticles(page: 1, size: 10);
$themes = $client->fetchThemeArticles(page: 2, size: 50);

fetchArticlesfetchThemeArticles 方法还接受一个包含排序参数的 OptionalTypedArray 对象

$sortParameters = new TypedArray(SortParameter::class, [
    new SortParameter('title', 'asc'),
    new SortParameter('order', 'desc')
]);
$articles = $client->fetchArticles(sort: $sortParameters);

其他函数可用于通过 ID、面包屑或修改日期之后的文章进行获取

$articleById = $client->fetchArticle(1);
$articleByBreadcrumb = $client->fetchArticleByBreadcrumb('article-breadcrumb');
$articlesAfterDate = $client->fetchModfifiedArticlesAfterDate(new DateTime('2020-01-01'))

测试

要运行单元测试,请使用 PHPUnit(确保项目根目录中存在 .env 文件)

make up
make test

贡献

欢迎贡献!

许可证

此项目采用 MIT 许可证。