Appearance
应用详情接口
用于获取指定应用的基础详情信息,返回数据包含应用名称、图标、版本、创建时间及状态等核心配置,支持通过URL直接拼接参数发起请求,可选用户令牌校验。
请求地址 GET / POST
http
https://nobase.cn/api/app/detail请求参数
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| appid | string | ✅ 是 | 应用唯一标识,从后台获取的应用ID |
| signature | string | ✅ 是 | 应用签名,从后台直接获取(与appid绑定,无需手动生成) |
| token | string | ❌ 否 | 用户令牌,需在后台“应用配置”中手动启用后才需传递 |
返回示例
成功响应(有应用详情)
json
{
"code": 200,
"msg": "success",
"data": {
"appimg": "智寻AI",
"appname": "智寻AI",
"appduction": "智寻AI",
"version": "1.0.0",
"project": "api.xunanit.cn",
"apptime": "2025-02-09 11:36:36",
"appstate": 1
}
}失败响应(无应用/参数错误)
json
{
"code": 404,
"data": "应用不存在!"
}返回数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码:200=成功,400=参数/应用错误,其他为系统错误 |
| msg | string | 状态描述:success=成功,fail=失败 |
| data | object/string | 响应数据:code=200时为对象,code≠200时为错误提示字符串 |
| data.appimg | string | 应用图标标识(如应用名称或图标URL) |
| data.appname | string | 应用名称 |
| data.appduction | string | 应用描述/简介 |
| data.version | string | 应用当前版本号,如“1.0.0” |
| data.project | string | 应用关联的项目域名/标识 |
| data.apptime | string | 应用创建/更新时间,格式为“YYYY-MM-DD HH:MM:SS” |
| data.appstate | number | 应用状态:1=正常启用,0=禁用/下架 |
代码示例
javascript
// 配置参数(替换为从后台获取的实际值,token需后台启用后再填写)
const appid = "your_app_id";
const signature = "your_signature_from_backend";
const token = "your_user_token"; // 后台未启用令牌校验可删除
// 拼接GET请求参数(处理token可选逻辑)
const params = new URLSearchParams({ appid, signature });
if (token) params.append('token', token);
const requestUrl = `https://nobase.cn/api/app/detail?${params.toString()}`;
// 发起GET请求
fetch(requestUrl)
.then(response => {
if (!response.ok) throw new Error(`HTTP错误:${response.status}`);
return response.json();
})
.then(res => {
if (res.code === 200) {
// 成功获取应用详情,解析数据
const appDetail = res.data;
console.log("应用名称:", appDetail.appname);
console.log("当前版本:", appDetail.version);
console.log("创建时间:", appDetail.apptime);
console.log("应用状态:", appDetail.appstate === 1 ? "正常启用" : "已禁用");
} else {
// 失败(如应用不存在、签名错误、令牌无效)
console.error("获取失败:", res.data);
}
})
.catch(error => console.error("请求异常:", error));python
import requests
# 配置参数(替换为从后台获取的实际值,token需后台启用后再填写)
appid = "your_app_id"
signature = "your_signature_from_backend"
token = "your_user_token" # 后台未启用令牌校验可设为None
# 构造请求参数(处理token可选逻辑)
params = { "appid": appid, "signature": signature }
if token: params["token"] = token
url = f"https://nobase.cn/api/app/detail?{params}"
try:
# 发起GET请求
response = requests.get(url, timeout=5)
response.raise_for_status() # 抛出HTTP错误(如404、500)
res_data = response.json()
if res_data["code"] == 200:
# 解析应用详情
app_info = res_data["data"]
print(f"应用名称:{app_info['appname']}")
print(f"当前版本:{app_info['version']}")
print(f"应用状态:{'正常启用' if app_info['appstate'] == 1 else '已禁用'}")
else:
# 处理业务失败(含令牌无效场景)
print(f"获取失败:{res_data['data']}")
except requests.exceptions.RequestException as e:
print(f"请求异常:{str(e)}")java
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class AppDetailApiDemo {
public static void main(String[] args) {
// 配置参数(替换为从后台获取的实际值,token需后台启用后再填写)
String appid = "your_app_id";
String signature = "your_signature_from_backend";
String token = "your_user_token"; // 后台未启用令牌校验可设为null
try {
// 构造请求参数(处理token可选逻辑,URL编码特殊字符)
StringBuilder params = new StringBuilder();
params.append("appid=").append(URLEncoder.encode(appid, "UTF-8"))
.append("&signature=").append(URLEncoder.encode(signature, "UTF-8"));
if (token != null && !token.isEmpty()) {
params.append("&token=").append(URLEncoder.encode(token, "UTF-8"));
}
// 发起GET请求
String urlStr = "https://nobase.cn/api/app/detail?" + params;
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
// 读取响应内容
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)
);
StringBuilder response = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
response.append(line);
}
in.close();
conn.disconnect();
// 解析响应JSON
JsonObject resJson = JsonParser.parseString(response.toString()).getAsJsonObject();
int code = resJson.get("code").getAsInt();
if (code == 200) {
// 成功获取详情,提取字段
JsonObject appData = resJson.getAsJsonObject("data");
System.out.println("应用名称:" + appData.get("appname").getAsString());
System.out.println("应用版本:" + appData.get("version").getAsString());
System.out.println("应用状态:" + (appData.get("appstate").getAsInt() == 1 ? "正常启用" : "已禁用"));
} else {
// 业务失败(含令牌无效场景)
System.out.println("获取失败:" + resJson.get("data").getAsString());
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("请求异常:" + e.getMessage());
}
}
}php
<?php
// 配置参数(替换为从后台获取的实际值,token需后台启用后再填写)
$appid = "your_app_id";
$signature = "your_signature_from_backend";
$token = "your_user_token"; // 后台未启用令牌校验可设为null
// 构造请求参数(处理token可选逻辑)
$params = [ "appid" => $appid, "signature" => $signature ];
if ($token !== null && $token !== "") {
$params["token"] = $token;
}
// 拼接URL(http_build_query自动处理URL编码)
$url = "https://nobase.cn/api/app/detail?" . http_build_query($params);
// 发起GET请求(生产环境建议用curl,兼容性更强)
$response = @file_get_contents($url);
if ($response === false) {
die("请求异常:无法获取应用详情数据");
}
// 解析JSON响应
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
die("请求异常:接口返回无效JSON数据");
}
// 处理响应结果(含令牌无效场景)
if ($data["code"] == 200) {
// 成功,展示应用详情
$appDetail = $data["data"];
echo "<h3>应用详情</h3>";
echo "应用名称:" . htmlspecialchars($appDetail["appname"]) . "<br>";
echo "当前版本:" . htmlspecialchars($appDetail["version"]) . "<br>";
echo "应用状态:" . ($appDetail["appstate"] == 1 ? "正常启用" : "已禁用") . "<br>";
} else {
// 失败,提示错误信息
echo "获取失败:" . htmlspecialchars($data["data"]);
}
?>注意事项
- token使用规则:
token为非必选参数,仅在后台“应用配置”中启用“用户令牌校验”后才需传递;未启用时传递令牌会被忽略,启用后未传递或令牌无效会返回“权限不足”。 - 参数安全性:
appid、signature、token均为敏感信息,需从后台正规渠道获取,切勿硬编码真实值到前端代码,建议通过后端接口转发请求,避免泄露。 - URL编码处理:若参数包含空格、
&、=等特殊字符,需通过代码示例中的工具方法(如URLSearchParams、http_build_query)自动编码,防止参数解析错误。 - 错误场景覆盖:需处理“应用不存在”“签名错误”“令牌无效”“服务器异常”等场景,分别返回友好提示,提升调试效率。

