查询最新macOS版本的免费公开HTTP API端点及Node.js实现方法问询
获取最新macOS版本的公开API及Node.js调用示例
可用的免费公开API端点
以下是几个无需认证、稳定可用的免费公开API:
苹果官方软件更新目录
端点:https://swscan.apple.com/content/catalogs/others/index-14-13-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog
说明:返回XML格式的官方软件更新元数据,包含所有macOS版本的版本号、发布日期、下载链接等完整信息。Endoflife.date macOS API
端点:https://endoflife.date/api/macos.json
说明:返回JSON格式的macOS版本生命周期数据,首条即为当前最新稳定版,附带发布日期、支持结束时间等字段。macOS Updates轻量API
端点:https://api.macosupdates.com/v1/latest
说明:专门针对macOS版本的极简API,直接返回JSON格式的最新版本核心信息(版本号、开发代号、发布日期)。
Node.js调用示例
1. 原生https模块调用(无第三方依赖)
以Endoflife.date API为例:
const https = require('https'); https.get('https://endoflife.date/api/macos.json', (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { try { const macosVersions = JSON.parse(data); const latest = macosVersions[0]; console.log('最新版本:', latest.cycle); console.log('发布日期:', latest.releaseDate); console.log('支持结束日期:', latest.eol); } catch (err) { console.error('数据解析失败:', err.message); } }); }).on('error', (err) => { console.error('请求出错:', err.message); });
2. 使用axios库调用(更简洁)
先安装依赖:
npm install axios
调用代码:
const axios = require('axios'); async function fetchLatestMacOS() { try { const res = await axios.get('https://api.macosupdates.com/v1/latest'); const latestInfo = res.data; console.log('最新版本:', latestInfo.version); console.log开发代号:', latestInfo.codename); console.log('发布日期:', latestInfo.release_date); } catch (error) { console.error('请求失败:', error.message); } } fetchLatestMacOS();
解析苹果官方XML API示例
苹果官方返回XML格式,需用xml2js解析:
先安装依赖:
npm install xml2js
代码示例:
const https = require('https'); const xml2js = require('xml2js'); https.get('https://swscan.apple.com/content/catalogs/others/index-14-13-12-10.16-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog', (res) => { let xmlData = ''; res.on('data', (chunk) => { xmlData += chunk; }); res.on('end', () => { xml2js.parseString(xmlData, (err, result) => { if (err) { console.error('XML解析出错:', err.message); return; } const products = result.plist.dict[0].dict; // 筛选macOS相关条目并提取版本号 const latestMacOS = products.find(prod => prod.key.some(k => k.includes('macOS') || k.includes('OS X'))); const version = latestMacOS.string.find(s => /^\d+\.\d+(\.\d+)?$/.test(s)); console.log('官方源最新版本:', version); }); }); }).on('error', (err) => { console.error('官方API请求失败:', err.message); });
内容的提问来源于stack exchange,提问作者rb27
相关产品推荐
相关产品推荐

