https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md#get-all的一些旧文档提到了/ – /所有可能曾经工作的端点,但http://registry.npmjs.org/-/all现在只返回{“message”:“deprecated”}.
解决方法
但是,在该代码库中,我们了解到NPM注册表的核心是位于https://replicate.npmjs.com的CouchDB数据库._all_docs
端点未被禁用,因此我们可以在https://replicate.npmjs.com/_all_docs点击它以获取一个JSON对象,其rows属性包含一个列表NPM上的所有公共包裹.每个包看起来像:
{"id":"lodash","key":"lodash","value":{"rev":"634-9273a19c245f088da22a9e4acbabc213"}},
在我写这篇文章时,该响应中有618660行,大约为64MB.
如果您需要有关特定包的更多数据,可以使用其密钥查找特定包 – 例如点击https://replicate.npmjs.com/lodash获取包含Lodash描述和发布历史等内容的巨大文档.
如果您需要有关所有包的所有当前数据,可以使用include_docs
参数_all_docs将实际文档主体包含在响应中 – 即命中https://replicate.npmjs.com/_all_docs?include_docs=true.准备好处理大量数据.
如果您需要更多数据,例如下载次数,这些数据未包含在这些CouchDB文档中,那么值得仔细阅读https://github.com/npm/registry/tree/master/docs中的文档,其中详细介绍了其他一些可用的API – 请注意问题中提到的警告,并非所有文档都记录在那里实际上有效.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。