gioppy / statamic-rest-client
Statamic REST API 的简单 PHP 客户端
Requires
- php: ^8.1.0
- guzzlehttp/guzzle: ^7.8
- illuminate/collections: ^9.0
Requires (Dev)
- laravel/pint: ^1.2.0
- pestphp/pest: ^2.0.0
- phpstan/phpstan: ^1.8.6
- symfony/var-dumper: ^6.2.0
README
本软件包提供 Statamic REST API 的简单客户端。
它主要适用于 SSG php 系统,如 Jigsaw,但也可在任何环境中使用。
安装
composer require gioppy/statamic-rest-client
该软件包需要至少 php 8.1,并依赖于 guzzlehttp/guzzle
和 illuminate/collections
。
如何使用
安装后,您可以使用经典 new
操作符创建新的客户端
new StatamicRestClient(...)
或使用静态方法
StatamicRestClient::make(...)
您可以传递两个值:您的 Statamic 安装的主机(例如:https://www.my-statmic.com
)和可选的 API 端点路径(默认为 api
,但您可以在 Statamic API 配置 中自定义)。
过滤器
您可以使用 ->where()
方法以两种可能的方式使用过滤器对 API 进行过滤。您可以过滤单个值
StatamicRestClient::make(...) ->where('featured', true)
或使用条件
StatamicRestClient::make(...) ->where('title', 'awesome', 'contains')
排序
您可以使用 ->sort()
方法通过传递字段数组对响应进行排序
StatamicRestClient::make(...) ->sort(['one', '-two', 'three'])
选择字段
您可以使用 ->fields()
方法指定应包含在响应中的字段,传递字段数组
StatamicRestClient::make(...) ->fields(['id', 'title', 'content'])
分页
您可以使用 ->paginate()
方法通过传递所需的项目数和可选的页码数来分页响应
StatamicRestClient::make(...) ->paginate(5, 2)
条目 / 条目
获取集合的所有条目
StatamicRestClient::make(...) ->entries('collection')
从集合获取一个条目
StatamicRestClient::make(...) ->entry('collection', 'id')
集合树
待办事项
导航树
StatamicRestClient::make(...) ->navigation('navigation_name')
分类术语 / 分类术语
获取分类的所有术语
StatamicRestClient::make(...) ->terms('taxonomy_name')
从分类获取单个术语
StatamicRestClient::make(...) ->term('taxonomy_name', 'taxonomy_slug')
全局变量 / 全局
获取所有全局变量
StatamicRestClient::make(...) ->globals()
获取单个全局变量
StatamicRestClient::make(...) ->global('handle')
资产 / 资产
获取一个容器中所有资产
StatamicRestClient::make(...) ->assets('container')
获取单个资产
StatamicRestClient::make(...) ->asset('container', 'path')
通过其 ID 获取单个资产
StatamicRestClient::make(...) ->assetById('id')
资产的 id
由 Statamic 格式化为 container::path
。
获取响应
您可以使用 ->all()
方法获取所有响应作为数组,包括链接和其他节点
StatamicRestClient::make(...) ->entries('collection') ->all()
或您可以使用 ->data()
方法只获取数据节点
StatamicRestClient::make(...) ->entries('collection') ->data()
如果您需要将 data
作为集合,可以使用 ->toCollection()
方法
StatamicRestClient::make(...) ->entries('collection') ->toCollection()
与 Statamic Glide Rest 集成
Statami Glide Rest 是 Statamic 的小型插件,它将 glide 操作预设公开在 REST API 端点。您可以使用 StatamicGlideRest
类获取带有 glide 预设的资产响应
StatamicGlideRest::make($host) ->presets(['small', 'medium']) ->glide('container::path') ->data()
待办事项
- 条目
- 条目
- 集合树
- 导航树
- 分类术语
- 分类术语
- 资产
- 资产
- 全局变量
- 全局
- 测试
- 与 Statamic Glide Rest 集成
- Laravel 集成