直接请求 Packagist 官方 API 是唯一稳定方式,因镜像站仅缓存 packages.json 和 dist 链接,不提供 /packages/{vendor}/{package}.json 等元数据端点,实测返回 404 或重定向;正确做法是直连 https://packagist.org/packages/{vendor}/{package}.json 并带 User-Agent 请求头。

直接请求 Packagist 官方 API 是唯一稳定方式,镜像站(如阿里云、腾讯、华为)基本不提供独立元数据 API,也不保证与官方接口兼容。
为什么不能用镜像站的 API 查包元数据
国内主流 Composer 镜像(如 https://packagist.phpcomposer.com、https://mirrors.aliyun.com/composer)只缓存 packages.json、p2/ 压缩索引和 dist 包下载链接,不暴露类似 /packages/{vendor}/{package}.json 的元数据端点。实测调用镜像站的同类路径会返回 404 或重定向到 packagist.org。
镜像设计目标是加速安装,不是替代 API 查询——它不索引 maintainer、downloads、replaced 等字段,也不保证响应结构与官方一致。
- 试图访问
https://mirrors.aliyun.com/composer/packages/monolog/monolog.json→ 404 - 访问
https://packagist.phpcomposer.com/packages/monolog/monolog.json→ 302 重定向至官方地址 - 所有镜像均未公开文档说明支持元数据查询,也无对应测试用例
正确做法:直连 packagist.org,但要加 User-Agent
最稳路径是直接请求 https://packagist.org/packages/{vendor}/{package}.json,必须满足三个条件:
-
{vendor}和{package}全小写、不含空格、只含字母数字下划线短横线(monolog/monolog✅,Monolog/Monolog❌) - HTTP 请求头必须带
User-Agent(如User-Agent: my-tool/1.0),否则可能被限流或返回 429 - 不要用
/p/路径(/p/monolog/monolog.json)——它返回 base64 压缩数据,结构不稳定,已有多次 breaking change
示例 curl:
curl -H "User-Agent: my-app/1.0" https://packagist.org/packages/monolog/monolog.json
响应里 packages 字段含各版本完整 composer.json 快照,maintainers 含 GitHub 用户名,downloads 是近 30 天下载量(注意:不是总下载数)。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
想批量查多个包?别轮询,用 search.json + 过滤
/search.json?q=xxx 是唯一支持模糊匹配的端点,但只返回简略列表(name、description、type、favers),不含 autoload、require 或版本细节。
- 查
q=logging返回最多 20 条结果,无法分页 - 精确查单个包仍要用
/packages/{vendor}/{package}.json - 若需从搜索结果中提取真实包名再逐个请求,注意
q=monolog/monolog比q=monolog更可靠,避免命中symfony/monolog-bridge
别依赖 type 字段做筛选——它仅反映注册时声明类型(library / project),不校验实际内容。
CI/CD 中获取当前包版本?别碰镜像,用 composer show --format=json
在构建流程里,与其调 API 查自己包的版本,不如用本地命令:
- 确保在项目根目录执行(
vendor/autoload.php可加载) -
composer show myvendor/mypackage --format=json直接输出 JSON,含version、autoload、require等全部字段 - 加
--all可查远程最新版(绕过本地 vendor),但会触发网络请求,失败则 fallback 到 lock 文件解析
真正容易被忽略的是:这个命令读的是 composer.lock 或 Packagist 缓存,不是实时 API;如果 lock 文件过期,--all 才真正发请求——而镜像站对此无影响,它只加速 install,不改变 show 的数据源。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










