Skip to content

应用详情接口

用于获取指定应用的基础详情信息,返回数据包含应用名称、图标、版本、创建时间及状态等核心配置,支持通过URL直接拼接参数发起请求,可选用户令牌校验。

请求地址 GET / POST

http
https://nobase.cn/api/app/detail

请求参数

参数名类型必需说明
appidstring✅ 是应用唯一标识,从后台获取的应用ID
signaturestring✅ 是应用签名,从后台直接获取(与appid绑定,无需手动生成)
tokenstring❌ 否用户令牌,需在后台“应用配置”中手动启用后才需传递

返回示例

成功响应(有应用详情)

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": "应用不存在!"
}

返回数据结构

参数名类型说明
codenumber状态码:200=成功,400=参数/应用错误,其他为系统错误
msgstring状态描述:success=成功,fail=失败
dataobject/string响应数据:code=200时为对象,code≠200时为错误提示字符串
data.appimgstring应用图标标识(如应用名称或图标URL)
data.appnamestring应用名称
data.appductionstring应用描述/简介
data.versionstring应用当前版本号,如“1.0.0”
data.projectstring应用关联的项目域名/标识
data.apptimestring应用创建/更新时间,格式为“YYYY-MM-DD HH:MM:SS”
data.appstatenumber应用状态: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"]);
}
?>

注意事项

  1. token使用规则token 为非必选参数,仅在后台“应用配置”中启用“用户令牌校验”后才需传递;未启用时传递令牌会被忽略,启用后未传递或令牌无效会返回“权限不足”。
  2. 参数安全性appidsignaturetoken 均为敏感信息,需从后台正规渠道获取,切勿硬编码真实值到前端代码,建议通过后端接口转发请求,避免泄露。
  3. URL编码处理:若参数包含空格、&= 等特殊字符,需通过代码示例中的工具方法(如URLSearchParamshttp_build_query)自动编码,防止参数解析错误。
  4. 错误场景覆盖:需处理“应用不存在”“签名错误”“令牌无效”“服务器异常”等场景,分别返回友好提示,提升调试效率。