跳转至

应用静态资源(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 解码)

请求示例

GET /resources/myapp/images/logo.png HTTP/1.1

响应

结构:二进制流(图片/文本/模板等原始文件内容),写入响应输出流。

成功响应: - 状态码:200 OK - Content-Type:由容器依据文件后缀推断(如 image/pngtext/html 等) - Body:文件原始字节

失败响应(文件不存在): - 状态码:404 Not Found - Body:找不到指定文件(HTML 文本,由 response.getWriter().print 写入后立即关闭)

失败响应(IO/其他异常): - 状态码:200(未显式设置;异常被吞掉,仅 printStackTrace) - Body:可能为空或部分内容