");
+ html.append("
").append(metadata.getServerName()).append(" API 文档
");
+
+ html.append("
服务器信息
");
+ html.append("
实现名称: ").append(metadata.getImplementationName()).append("
");
+ html.append("
版本: ").append(metadata.getImplementationVersion()).append("
");
+ html.append("
基础URL: ").append(metadata.getBaseUrl()).append("
");
+
+ html.append("
功能特性
");
+ metadata.getFeatures().forEach((key, value) -> {
+ html.append("
");
+ html.append("").append(key).append(": ").append(value);
+ html.append("
");
+ });
+
+ html.append("
API 端点
");
+ metadata.getEndpoints().forEach(endpoint -> {
+ html.append("
");
+ html.append("
").append(endpoint.getName()).append("
");
+ html.append("
");
+ html.append("")
+ .append(endpoint.getMethod()).append("");
+ html.append("").append(endpoint.getPath()).append("");
+ html.append("
");
+ html.append("
描述: ").append(endpoint.getDescription()).append("
");
+ if (endpoint.getParameters() != null && !endpoint.getParameters().isEmpty()) {
+ html.append("
参数: ").append(String.join(", ", endpoint.getParameters())).append("
");
+ }
+ html.append("
响应类型: ").append(endpoint.getResponseType()).append("
");
+ html.append("
需要认证: ").append(endpoint.isRequiresAuth() ? "是" : "否").append("
");
+ html.append("
");
+ });
+
+ html.append("
客户端配置
");
+ ApiMetadata.ClientConfiguration clientConfig = metadata.getClientConfig();
+ html.append("
认证服务器: ").append(clientConfig.getAuthServerUrl()).append("
");
+ html.append("
会话服务器: ").append(clientConfig.getSessionServerUrl()).append("
");
+ html.append("
API服务器: ").append(clientConfig.getApiServerUrl()).append("
");
+ html.append("
材质服务器: ").append(clientConfig.getTextureServerUrl()).append("
");
+
+ html.append("
");
+ html.append("");
+ html.append("");
+
+ return html.toString();
+ }
+}
diff --git a/src/main/java/org/miowing/mioverify/controller/TextureController.java b/src/main/java/org/miowing/mioverify/controller/TextureController.java
index 4dd9a63..3463dc3 100644
--- a/src/main/java/org/miowing/mioverify/controller/TextureController.java
+++ b/src/main/java/org/miowing/mioverify/controller/TextureController.java
@@ -10,8 +10,6 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
@RestController
@@ -23,9 +21,8 @@ public class TextureController {
private StorageUtil storageUtil;
@GetMapping("/skin/default")
public void defaultSkin(HttpServletResponse resp) throws IOException {
- File skin = dataUtil.getDefSkinLoc().toFile();
resp.setContentType(MediaType.IMAGE_PNG_VALUE);
- IoUtil.copy(new FileInputStream(skin), resp.getOutputStream());
+ IoUtil.copy(storageUtil.getDefaultSkin(), resp.getOutputStream());
}
@GetMapping("/hash/{hash}")
public void texture(@PathVariable String hash, HttpServletResponse resp) throws IOException {
diff --git a/src/main/java/org/miowing/mioverify/dao/AdminUserDao.java b/src/main/java/org/miowing/mioverify/dao/AdminUserDao.java
new file mode 100644
index 0000000..894992d
--- /dev/null
+++ b/src/main/java/org/miowing/mioverify/dao/AdminUserDao.java
@@ -0,0 +1,9 @@
+package org.miowing.mioverify.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.miowing.mioverify.pojo.AdminUser;
+
+@Mapper
+public interface AdminUserDao extends BaseMapper