应用静态资源(MagicResourceController)¶
按应用名与相对路径读取应用目录下 resources/ 中的静态资源文件并以二进制流返回,供设计器预览/下载应用内置资源(图片、模板文件等)。
- 接口类型:REST 资源(二进制流响应)
- 基址:
${myapps.context-path.designer:}(类级@RequestMapping) - Tag:MagicApi 模块
公共说明¶
- 鉴权:是(需 designerToken)。控制器继承自
AbstractDesignTimeController(基类为@RestController)。鉴权机制详见 index.md「鉴权说明」。 - 响应:非统一
Resource,直接以二进制流写入HttpServletResponse输出流(Content-Type由容器按文件后缀推断,文件不存在时返回 HTML 文本"找不到指定文件"并设置状态码404)。 - HTTP 方法:方法级
@RequestMapping("/resources/{appName}/**")未限定方法;受CommonSecurityFilter限制,实际仅GET/POST/HEAD/OPTIONS可达。 - 路径解析:从完整
requestURI中截取/resources/{appName}之后的全部片段作为相对路径,拼接至<workspaceRoot>/<appName>.application/resources/<相对路径>,经SecurityFile.resolveFile校验后读取。
1. 获取应用下的资源¶
按应用名与子路径读取 <workspaceRoot>/<appName>.application/resources/<...> 下的文件并以原始字节流返回。
- 接口类型:REST 资源(二进制流响应)
- 请求方式:任意(方法级
@RequestMapping未限定方法;实际仅GET/POST/HEAD/OPTIONS可达) - 请求路径:
/resources/{appName}/**(完整:{designer-context}/resources/{appName}/<相对路径>) - 鉴权:是(需 designerToken)
- Tag:MagicApi 模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| appName | path | string | 是 | 应用名称(对应 <workspaceRoot>/<appName>.application 目录) |
| (后续路径片段) | path | string | 是 | /resources/{appName}/ 之后的相对路径(URI 中允许 URL 编码,服务端 URLDecoder.decode 解码) |
请求示例¶
响应¶
结构:二进制流(图片/文本/模板等原始文件内容),写入响应输出流。
成功响应:
- 状态码:200 OK
- Content-Type:由容器依据文件后缀推断(如 image/png、text/html 等)
- Body:文件原始字节
失败响应(文件不存在):
- 状态码:404 Not Found
- Body:找不到指定文件(HTML 文本,由 response.getWriter().print 写入后立即关闭)
失败响应(IO/其他异常):
- 状态码:200(未显式设置;异常被吞掉,仅 printStackTrace)
- Body:可能为空或部分内容