endeavour / groeigids-api-client
用于导入 GroeiGids 文章的 API 客户端
0.1.0
2024-05-17 08:02 UTC
Requires
- php: 8.1.*
- opis/json-schema: ^2.3
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.0
- vlucas/phpdotenv: ^5.6
Suggests
- guzzlehttp/guzzle: Guzzle is a PHP HTTP client that implements PSR-18 (suggested implementation)
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') );
现在获取文章和主题就像调用 fetchArticles
和 fetchThemeArticles
方法一样简单
$articles = $client->fetchArticles(); $themes = $client->fetchThemeArticles();
fetchArticles
和 fetchThemeArticles
方法接受一个可选的查询参数数组
$articles = $client->fetchArticles(page: 1, size: 10); $themes = $client->fetchThemeArticles(page: 2, size: 50);
fetchArticles
和 fetchThemeArticles
方法还接受一个包含排序参数的 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 许可证。