futureactivities/craft3-rest-api

此包的最新版本(2.0.5)没有可用的许可证信息。

为Craft 4提供易于使用的REST API

安装: 559

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 1

公开问题: 0

类型:craft-plugin

2.0.5 2024-02-11 13:06 UTC

README

FutureActivities的REST API插件为Craft 3或4的任何安装提供了易于使用的API端点。无需配置,只需启用插件,端点即可立即可用。

您可以可选地排除某些字段和部分以避免暴露数据。

使用v1用于Craft 3,v2+用于Craft 4。

特性

  • 获取所有条目、类别、全局、标签和资产。
  • 验证用户身份并管理用户。
  • 基于Yii 2 RESTful Web Services构建 - 支持扩展、字段、分页。
  • 排除特定字段或部分,使其不被包含在响应中。

安装

通过composer安装

composer require futureactivities/craft3-rest-api

用法

有关可用端点的进一步文档可以在以下位置找到

https://craftrest.docs.apiary.io/

示例

获取所有类别

GET /rest/v1/categories

获取所有类别,并扩展相关字段 - 这将返回数据对象而不是ID。

GET /rest/v1/categories?expand=related

获取特定类别

GET /rest/v1/categories/18

获取属于新闻频道的所有条目,并将结果限制为slug和标题

GET /rest/v1/entries?filter[section]=news&fields=slug,title

获取新闻频道中的所有条目,扩展特色图像并应用特定的图像转换

GET /rest/v1/entries?filter[section]=news&expand=featuredImage&transforms[featuredImage]=featuredFull,featuredThumb

设置

从控制面板,可以通过以下设置配置插件

常规

包含禁用 - 禁用条目、类别等是否包含在API结果中。

启用资产 - 启用资产端点

启用标签 - 启用标签端点

字段

配置API结果中可用的自定义字段。

部分

配置API结果中可用的部分。

事件

字段事件

此插件仅支持有限数量的字段类型在API响应中,对于其他字段类型和自定义字段类型,您可以使用以下事件自行处理响应

Event::on(\futureactivities\rest\services\Fields::class, \futureactivities\rest\services\Fields::EVENT_PROCESS_FIELD, function(Event $event) {
    $field = $event->field;
    
    if (is_a($field, 'namespace\plugin\CustomFieldType'))
        $event->data = [
            'key' => 'value'   
        ];
    }
});

额外字段事件

有时您可能希望将额外数据包含在响应中,以下事件将允许您将您自己的字段添加到元素中。

Event::on(\futureactivities\rest\models\Element::class, \futureactivities\rest\models\Element::EVENT_EXTRA_FIELDS, function(Event $event) {
    $model = $event->model;
    
    if (is_a($model, 'craft\elements\Entry') && $model->section->handle == 'news') {
        $event->fields = [
            'myCustomField' => 'Hello'  
        ];
    }
});

身份验证

如果您使用此插件的用户身份验证功能,则可能需要配置您的服务器以确保授权头传递给Craft。对于Apache,这是通过向您的conf文件添加以下内容来完成的

RewriteEngine On
RewriteCond %{HTTP:Authorization} .+
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Cron

过期令牌

默认情况下,用户身份验证令牌永远不会过期。要使令牌过期,设置一个运行以下命令的cron作业

./craft rest/token/expire <seconds>

<seconds>是可选的。默认为3600秒(1小时)。

变更日志

1.2

  • 修复了损坏的CMS设置布局
  • 修复了令牌验证中的错误
  • 添加了rest/v2/me端点,该端点返回一个更有用的用户对象,并且也支持字段扩展。

1.1

  • 资产图像转换现在期望端点上的transforms而不是imageTransform。现在允许逗号分隔的转换键值,并将返回包含原始图像URL的转换数组。

  • 添加了对在条目和类别请求中指定图像转换的支持,格式如下

    transforms[field] = 'transformKey,anotherKey' transforms[parent][child] = 'transformKey'

路线图

以下功能计划用于未来的版本

  • API身份验证 - 仅允许已验证用户使用API。
  • 限制字段/部分等的使用,仅限于某些用户角色。