添加大量图片、字体、音频等静态资源文件,包括用户界面图片、模板文件和安装界面素材 添加系统版本配置文件(.version)和常量定义文件(.constant) 更新供应商依赖文件,包括Symfony VarDumper组件和相关许可证文件 添加验证码配置文件(captcha.php)和.gitignore规则
58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
# 接口分析报告:/api/share
|
||
|
||
## 1. 接口概述
|
||
- **URL**: `https://shop.douba.top/api/share`
|
||
- **Method**: `GET`
|
||
- **功能**: 获取微信分享所需的配置信息(图片、标题、简介)。
|
||
|
||
## 2. 路由定义
|
||
- **文件**: [route/api.php](file:///home/jone/workspace/CRMEB_PRO/route/api.php)
|
||
- **代码位置**: `Route::get('share', 'v1.PublicController/share')->name('share');`
|
||
- **中间件**:
|
||
- `StationOpenMiddleware`: 检查站点是否开启。
|
||
- `AuthTokenMiddleware` (参数: `false`): 尝试获取用户信息,但不强制登录。
|
||
|
||
## 3. 控制器实现
|
||
- **文件**: [app/controller/api/v1/PublicController.php](file:///home/jone/workspace/CRMEB_PRO/app/controller/api/v1/PublicController.php)
|
||
- **类**: `PublicController`
|
||
- **方法**: `share`
|
||
- **代码逻辑**:
|
||
```php
|
||
public function share()
|
||
{
|
||
// 1. 获取分享图片配置
|
||
$data['img'] = sys_config('wechat_share_img');
|
||
// 2. 处理图片链接:如果是相对路径,拼接站点域名
|
||
if ($data['img'] && strstr($data['img'], 'http') === false) {
|
||
$data['img'] = sys_config('site_url') . $data['img'];
|
||
}
|
||
$data['img'] = str_replace('\\', '/', $data['img']);
|
||
// 3. 获取分享标题和简介
|
||
$data['title'] = sys_config('wechat_share_title');
|
||
$data['synopsis'] = sys_config('wechat_share_synopsis');
|
||
// 4. 返回 JSON 响应
|
||
return app('json')->successful($data);
|
||
}
|
||
```
|
||
|
||
## 4. 业务逻辑流程
|
||
1. **请求接收**: 客户端发起 `GET` 请求。
|
||
2. **路由匹配**: 匹配到 `v1.PublicController/share`。
|
||
3. **中间件处理**: 验证站点状态,尝试获取用户身份(非强制)。
|
||
4. **控制器执行**:
|
||
- 调用 `sys_config` 读取 `wechat_share_img`。
|
||
- 补全图片 URL(依赖 `site_url` 配置)。
|
||
- 调用 `sys_config` 读取 `wechat_share_title` 和 `wechat_share_synopsis`。
|
||
5. **响应返回**: 数据封装为标准 JSON 格式。
|
||
|
||
## 5. 数据来源
|
||
- 数据主要来源于 `system_config` 表,通过 `sys_config()` 辅助函数读取。
|
||
- 涉及配置项:
|
||
- `wechat_share_img`: 微信分享图片
|
||
- `wechat_share_title`: 微信分享标题
|
||
- `wechat_share_synopsis`: 微信分享简介
|
||
- `site_url`: 网站域名
|
||
|
||
## 6. 调用链总结
|
||
`Client` -> `Route (/api/share)` -> `Middleware (StationOpen, AuthToken)` -> `PublicController::share()` -> `sys_config (Read Config)` -> `JSON Response`
|