kaoros-project/api-formatter

为 Kairos API 项目部分的 API 响应格式化组件。

dev-master / 1.0.x-dev 2018-08-25 12:32 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:44:38 UTC


README

为 Kairos API 项目部分的 API 响应格式化组件。

1) 主题

API 格式化组件负责响应的创建。它处理其他部分预先格式化的数据,并在 PSR 响应中插入特定格式的数据。

该组件将使用事件调度方法来执行一系列响应构建逻辑,如数据格式化、头解析等。

2) 类架构

格式化器将提供一个基类来执行构建逻辑。

设计了三个额外的组件来提供功能的逻辑足迹。这些组件包括

  • ResponseFactory:用于创建新的响应实例
  • BodyFormatter:用于执行主要主体格式化
  • HeaderFormatter:用于生成头部赋值

3) 依赖描述和在元素中的使用

在编写本说明时,格式化器被设计为具有三个生产依赖项,如下所示

  • psr/log
  • symfony/event-dispatcher
  • kairos-project/api-controller

3.1) psr/log

在每个项目部分中,调试和错误回溯是目前开发的基本法则,它缺少 OWASP 前十大威胁的一部分。

根据第三版 PHP 标准参考定义,日志组件必须实现一个特定的接口。顺便说一下,日志系统将被所有现有框架使用。

3.2) symfony/event-dispatcher

格式化系统被设计成易于扩展,并将实现事件调度系统,允许通过优先级来附加和分离逻辑。

3.3) kairos-project/api-controller

API 格式化器被设计用于 API 和 Kairos 项目中的通用系统 API 控制器。该系统提供对特定工作流事件的访问。

格式化器将定义控制器组件作为依赖项,以使用工作流事件。

4) 实现规范

API 格式化器类本身将提供一个响应创建工作流程。此工作流程将包括一系列事件,每个事件负责特定的创建和格式化部分。

第一个触发的事件是响应创建。它将在特定事件中返回响应实例,实现 PHP 标准建议第 7 条。

第二个事件是主体格式化。通过编码初始处理响应数据,该组件将创建预期的响应主体。

第三个事件是头部格式化。此步骤用于提供预期的头部,如内容类型或内容长度。

4.1) 依赖注入规范

API 格式化器将作为构造函数参数接收事件调度器的实例和一个日志实例。事件调度器元素将用于调度格式化器的三个事件。日志将用于跟踪格式化器工作流程。

4.2) 格式方法算法

格式化方法负责为每个格式化事件进行调度。

We assume to receive the response event from the parameters.

Dispatch the "create response" event.
Dispatch the "format body" event.
Dispatch the "process header" event.