From 1063e5188c56b9c6713676e8e799b3a2cc695f34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Sat, 5 Sep 2026 14:57:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(backend-java):=20=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=85=AC=E5=BC=80=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 /api/version 与 /api/version/latest 公开端点,路径与 file_url 字段 兼容 Python 时代客户端固定请求,供桌面端 ShuFuAI.exe 检查更新。 --- .../controller/PublicVersionController.java | 46 +++++++++++++++++++ .../service/SoftwareVersionService.java | 22 +++++++++ 2 files changed, 68 insertions(+) create mode 100644 backend-java/src/main/java/com/nanri/aiimage/modules/softwareversion/controller/PublicVersionController.java diff --git a/backend-java/src/main/java/com/nanri/aiimage/modules/softwareversion/controller/PublicVersionController.java b/backend-java/src/main/java/com/nanri/aiimage/modules/softwareversion/controller/PublicVersionController.java new file mode 100644 index 00000000..031b70af --- /dev/null +++ b/backend-java/src/main/java/com/nanri/aiimage/modules/softwareversion/controller/PublicVersionController.java @@ -0,0 +1,46 @@ +package com.nanri.aiimage.modules.softwareversion.controller; + +import com.nanri.aiimage.modules.softwareversion.service.SoftwareVersionService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 客户端公开版本查询接口。 + * + *
路径和字段必须保持与 Python 时代兼容:客户端已固定请求 + * {@code /api/version} 和 {@code /api/version/latest},不能改成 admin 前缀, + * 也不能把 {@code file_url} 改成 {@code download_url}。
+ */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/version") +public class PublicVersionController { + + private final SoftwareVersionService softwareVersionService; + + @Value("${app.version:${APP_VERSION:1.0.0}}") + private String appVersion; + + @Value("${app.update-url:${APP_UPDATE_URL:}}") + private String updateUrl; + + @GetMapping + public Map