diff --git a/AGENTS.md b/AGENTS.md index ac1acce..1259762 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -37,3 +37,16 @@ php think tools:db:desc ### 开发流程 项目内置CURD机制,基本流程在[CODERULE.md](./CODERULE.md)的 CURD 部分,详细说明需要查看在线文档。 + +### 页面接口同体机制 + +系统支持页面和接口同体,即同一个控制器方法既可以返回 HTML 页面,也可以返回 JSON 接口数据。 + +- **触发方式**:在请求头(Header)中设置 `Accept` 包含 `application/json`。 +- **认证方式**:支持在 Header 中传入 `Authorization: Bearer tokenContent` 进行接口认证。 +- **实现要求**:控制器方法必须调用 `$this->fetch()` 而非 `View::fetch()`。 +- **数据输出**: + - 无论是 `$this->assign()` 还是 `View::assign()` 的数据都会被转换为 JSON。 + - 如果不希望某个数据出现在 JSON 中,可以使用 `$this->assign('name', 'value', -1)`(第三个参数设为 -1)。 +- **特殊处理**:`index` 方法GET方式默认返回分页数据。若需获取 `assign` 的数据,需在 URL 中添加参数 `get_page_data=1`。 +- **生效范围**:仅在控制器模式(Controller Mode)中生效,路由模式(Route Mode)不生效。