企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## API 接口规范 1. header 中 `x-requested-with` 为 `XMLHttpRequest` 后端通过 header 中的 `x-requested-with` 来判断是否为 ajax 请求 2. 后端接口默认为 `api` 模块, 控制器需要继承 `\app\ApiController`, 通过 `$this->token` 获取 `Lcobucci\JWT\Token` 实例 3. 一般来说用户身份验证通过后, 我们通过 `createToken` 方法生成 `token`, `token` 中携带了用户身份信息, 如用户ID, 昵称等, 默认开启了 RSA 加密, 在关闭了 RSA 加密的情况下不建议携带隐私信息 4. 用户在已经获取了 `token` 的情况下, 每次请求需要在 header 中携带 `Authorization` (用户的 `token`) 5. API 发生错误时, 默认情况下, 即使接口发生异常, 返回的 `state` 依然是 200, 我们通过返回的数据 `response.data.err === 1` 来判断接口是否发生了异常(response 为 [XMLHttpRequest.response](https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/response) 对象), 同时返回的数据里也需要注意, 不要使用 err 这个字段 6. 继承 `app\ApiController` 的控制器方法中允许直接返回对象, 或数组, 返回的对象和数组默认会转换成 json 格式 7. 可以通过 `api\secure\resetRsaKey` 来重新生成 RSA 密钥, 该接口只允许本地访问, 或者用户可以将接口删除, 每次通过 openssl 重新生成到 `application\extra\rsa.php` 中 `path` 所定义的目录中 #### 一个正常的 ajax 请求 header ![](https://box.kancloud.cn/eb498abc4b36b6ab6f8ea7bceb4816ac_1261x257.png) #### API 异常时返回的内容 ![](https://box.kancloud.cn/19827e7d9924a4485928fb7d034500c5_861x207.png) **API异常时返回内容说明** : * err: 是否发生异常 * msg: 抛出异常的信息 * errCode: 错误代码 * errType: 抛出异常的类型 (Exception 类), 不包含完整的命名空间