Files
douba_shop/.trae/documents/analysis_plan.md
Karlcarlo c9a98f342c chore: 添加静态资源文件和版本配置文件
添加大量图片、字体、音频等静态资源文件,包括用户界面图片、模板文件和安装界面素材
添加系统版本配置文件(.version)和常量定义文件(.constant)
更新供应商依赖文件,包括Symfony VarDumper组件和相关许可证文件
添加验证码配置文件(captcha.php)和.gitignore规则
2026-03-06 20:14:23 +08:00

2.4 KiB
Raw Permalink Blame History

接口分析报告:/api/share

1. 接口概述

  • URL: https://shop.douba.top/api/share
  • Method: GET
  • 功能: 获取微信分享所需的配置信息(图片、标题、简介)。

2. 路由定义

  • 文件: route/api.php
  • 代码位置: Route::get('share', 'v1.PublicController/share')->name('share');
  • 中间件:
    • StationOpenMiddleware: 检查站点是否开启。
    • AuthTokenMiddleware (参数: false): 尝试获取用户信息,但不强制登录。

3. 控制器实现

  • 文件: app/controller/api/v1/PublicController.php
  • 类: PublicController
  • 方法: share
  • 代码逻辑:
    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