\App\Http\Controllers\ApiTemplateRenderController

对外模板渲染控制器

职责:为 CMS/游戏/单页等服务端渲染提供模板渲染接口,鉴权校验、类型白名单、 变量渲染与缓存读取在本层编排,渲染细节下沉 TemplateRenderer。

Summary

Methods
Properties
Constants
__construct()
__invoke()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
renderKeyMatches()
$config
$renderer
N/A

Properties

$config

$config : \App\Services\Admin\ConfigService

Type

ConfigService

$renderer

$renderer : \App\Services\Admin\TemplateRenderer

Type

TemplateRenderer

Methods

__construct()

__construct(\App\Services\Admin\ConfigService  $config, \App\Services\Admin\TemplateRenderer  $renderer) : mixed

Parameters

\App\Services\Admin\ConfigService $config
\App\Services\Admin\TemplateRenderer $renderer

Returns

mixed —

__invoke()

__invoke(\Illuminate\Http\Request  $request, string  $code) : \Illuminate\Http\JsonResponse

对外渲染接口

模板引擎的对外消费落点,供 CMS/游戏/单页等服务端渲染调用。 GET /api/templates/{code}/render?type=email&参数=值…

约定:

  • 鉴权:template.render_public=1 时公开可调;否则须 ?key= 匹配 template.render_key 敏感配置。key 未配置且未公开时拒绝,安全默认。
  • 限流:独立走 throttle:template-render,默认 60 次/分钟/IP,与后台 API 全局限流分离,对外渲染单独计价防刷。
  • 类型白名单:type 仅接受 TemplateType 注册表声明的类型,其余返回 400。
  • 变量参数:query 中剔除 type/key/api_key 控制参数后的全部字段, 按模板 vars 声明渲染校验,缺失必填变量返回 422。
  • meta 为纯文本语义:不参与模板渲染、原样下发,消费端渲染进 HTML 前 必须自行转义或白名单。
  • 结果走 sys:template:render 缓存,code 与参数 md5 联合键,5 分钟 TTL, 模板发布/编辑/回滚自动全清。

Parameters

\Illuminate\Http\Request $request
string $code

Returns

\Illuminate\Http\JsonResponse —

renderKeyMatches()

renderKeyMatches(string  $configured, string  $given) : bool

渲染 key 匹配:支持逗号分隔多 key(轮换期新旧并存,逐个 hash_equals 防时序攻击)。

Parameters

string $configured
string $given

Returns

bool —