语言: English | 简体中文
本指南说明如何把 Station OpenAPI SDK 接入现有 Spring Boot 3 项目,并完成第一次平台调用。SDK 最低要求为 JDK 17。
请先联系项目对接的技术支持人员,获取:
- 以
http://或https://开头的 Station OpenAPI 根地址; - AppKey 和 SecretKey,或 Access Token;
- 凭证可访问的业务范围。
Endpoint 可以包含平台部署所需的路径,但不要追加具体的 /remoteApi/* 地址。模板启停需要平台 v1.3.3+;MQ
字段的版本要求见RocketMQ 消息接入。
当前 SDK 通过 GitHub 源码提供,不在 Maven Central 发布官方制品。请选择一种方式:
- 源码接入:把 SDK core、OkHttp transport 及 SPI 资源复制到自己的项目。
- Maven 依赖:将 SDK 安装到本地仓库或发布到私有 Nexus,再依赖
1.1.0。
准备步骤见源码与依赖接入。本地或私有 Maven 仓库中已有 SDK 后,业务项目添加:
<dependency>
<groupId>com.deeprobotics.station.openapi</groupId>
<artifactId>station-openapi-sdk</artifactId>
<version>1.1.0</version>
</dependency>将 Sample 的这两个类复制到 Spring Boot 能扫描到的包下,并调整 package:
它们负责配置绑定、启动校验,并通过 destroyMethod="close" 管理单例 StationOpenApiClient。所有调用复用该 Bean。
Sample 使用三个配置文件把公共配置与两种鉴权方式分开。自己的项目可以沿用同样结构。
application.yml:
spring:
profiles:
active: token
station:
openapi:
endpoint: ${STATION_ENDPOINT:}
connect-timeout: 3s
read-timeout: 10s
call-timeout: 15s # 仅用于普通 JSON 调用application-token.yml:
spring:
config:
activate:
on-profile: token
station:
openapi:
auth-mode: ACCESS_TOKEN
access-token: ${STATION_ACCESS_TOKEN:}把 application.yml 中的 spring.profiles.active 改为 signature,并增加 application-signature.yml:
spring:
config:
activate:
on-profile: signature
station:
openapi:
auth-mode: SIGNATURE
app-key: ${STATION_APP_KEY:}
secret-key: ${STATION_SECRET_KEY:}设置 STATION_ENDPOINT 和所选模式对应的凭证环境变量。token 与 signature 只启用一个,并只配置该模式的凭证。真实凭证不要提交到版本库。
更多说明见鉴权与凭证。
在业务 Service 中注入单例 Client,先调用不会修改数据的平台时间接口:
import com.deeprobotics.station.openapi.sdk.StationOpenApiClient;
import org.springframework.stereotype.Service;
@Service
public class StationConnectionService {
private final StationOpenApiClient client;
public StationConnectionService(StationOpenApiClient client) {
this.client = client;
}
public String getPlatformTime() {
return client.system().getTimeText();
}
}七个 API 分组的请求构造和调用方式见 Sample Service 目录。
- 分页字段使用
pageNo,从 1 开始;不要使用pageNum。 - 捕获
StationOpenApiException处理 HTTP SDK 调用失败,可记录其requestId、operation、code和resultUnknown。 - 不要记录完整请求体、响应体或凭证。
- 写入或控制操作失败且
resultUnknown=true时,先查询状态或等待 MQ 消息,再决定是否重新执行。 - 文件下载使用
OutputStream,只尝试一次;失败时可能留下部分输出。
需要查看全部 28 个调用、请求参数和返回结构时,请在 IDEA 中运行 Spring Boot Sample,然后通过 Swagger UI 调用。