# 接口分析报告:/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`