From b459f669254f4e51567d5f785dc8f3fa644c6741 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Sat, 30 Jul 2022 11:35:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0api=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standalone/web/ApiInfoProperties.java | 24 ++++++++++ .../standalone/web/SystemInfoController.java | 46 ++++++++++++++++--- .../src/main/resources/application.yml | 3 ++ 3 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/ApiInfoProperties.java diff --git a/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/ApiInfoProperties.java b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/ApiInfoProperties.java new file mode 100644 index 00000000..ed263e97 --- /dev/null +++ b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/ApiInfoProperties.java @@ -0,0 +1,24 @@ +package org.jetlinks.community.standalone.web; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Getter +@Setter +@ConfigurationProperties(prefix = "api") +@Component +public class ApiInfoProperties { + + @Schema(description = "api根路径") + private String basePath; + + @Schema(description = "api地址信息") + private Map urls = new ConcurrentHashMap<>(); + +} diff --git a/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/SystemInfoController.java b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/SystemInfoController.java index 06362a1a..24c71fc4 100644 --- a/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/SystemInfoController.java +++ b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/web/SystemInfoController.java @@ -1,20 +1,54 @@ package org.jetlinks.community.standalone.web; -import org.hswebframework.web.authorization.annotation.Authorize; -import org.jetlinks.community.Version; +import lombok.Getter; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Mono; +import java.util.HashMap; +import java.util.Map; + @RequestMapping("/system") @RestController public class SystemInfoController { - @GetMapping("/version") - @Authorize(ignore = true) - public Mono getVersion() { - return Mono.just(Version.current); + private static final Map versionResponse; + + private final ApiInfoProperties infoProperties; + + static { + versionResponse = new HashMap<>(); + versionResponse.put("result", new Version()); + versionResponse.put("status", 200); + versionResponse.put("code", "success"); } + public SystemInfoController(ApiInfoProperties infoProperties) { + this.infoProperties = infoProperties; + } + + @GetMapping("/version") + public Mono> getVersion() { + + return Mono.just(versionResponse); + } + + @GetMapping("/apis") + public Mono> getApis() { + Map map = new HashMap<>(); + map.put("result", infoProperties); + map.put("status", 200); + map.put("code", "success"); + return Mono.just(map); + } + + + @Getter + public static class Version { + private final String edition = "pro"; + private final String version = "1.1.0-SNAPSHOT"; + private final String mode = "cloud"; + + } } diff --git a/jetlinks-standalone/src/main/resources/application.yml b/jetlinks-standalone/src/main/resources/application.yml index 5be2862c..69ffd029 100644 --- a/jetlinks-standalone/src/main/resources/application.yml +++ b/jetlinks-standalone/src/main/resources/application.yml @@ -109,6 +109,9 @@ hsweb: file: manager: storage-base-path: ./data/files +api: + # 访问系统接口的根地址 + base-path: http://127.0.0.1:${server.port} jetlinks: server-id: ${spring.application.name}:${server.port} #设备服务网关服务ID,不同服务请设置不同的ID