当前位置:  开发笔记 > 编程语言 > 正文

通过api查询npmjs注册表

如何解决《通过api查询npmjs注册表》经验,为你挑选了6个好方法。

我发现我经常对https://www.npmjs.com/上的搜索顺序和表现力不满意.我想应该有一种以编程方式查询使用服务器https://api.npmjs.org/或http://registry.npmjs.org/.但是怎么样?文件在哪里?

(或者是否有节点包来促进它?我知道SO不是关于工具或包的推荐,所以也许我不应该问这个问题,但是如果有一些工具,我可能会从那里读取API同样.)



1> MvG..:

当然,至少有一个工具可以与该注册表进行通信,这就是npm命令行工具本身.它的搜索示例首先更新索引的本地缓存副本,然后对其进行过滤.在update-index中,可以读到以URL结尾的URL /-/all 显然是特殊的.事实上,将其附加到registry.npmjs.org(故意不格式化为链接)将获取125M文件,这可能对您的浏览器来说太多了.幸运的是,缓存版本可以存储在~/.npm/registry.npmjs.org/-/all/.cache.json.从那里可以读取所有已知包的列表.然后可以继续更详细地查询每个这样的包.

事实上,npm search显然没有使用更复杂的方案表明这里没有太多的服务器端API.

在网上搜索提到的页面api.npmjs.org我发现可以从那里检索下载计数.我找到的所有其他文件都使用了这个单一的设施.

寻找替代方案,我也偶然发现了npmsearch.com,它提供了一些更多功能的搜索工具,并且有一些文档化的API.


https://registry.npmjs.org/-/all现在只返回`{"message":"deprecated"}.我建议不接受这个答案.

2> Dipu Raj..:

最近发现了一个非常好的npm查询网站https://npms.io.他们还根据各种数据为每个包装提供质量点系统.

他们还将使用收集的有关项目的信息为每个包提供评分系统.最终得分是根据质量,维护,受欢迎程度和个性的四个不同方面计算的.

API Doc:https://api-docs.npms.io



3> Martin..:

您始终可以使用NPM注册表客户端:https://github.com/npm/npm-registry-client.

如果仔细观察,可以获得API的端点.例如,为了得到包的dist-tag,你可以去/ - /package/packageName/dist-tags'

所以要获得babel-core dist标签,你可以去http://registry.npmjs.org/-/package/babel-core/dist-tags



4> Drazisil..:

https://skimdb.npmjs.com/registry/_all_docs

这是提取所有程序包名称的当前方法。

URL搜索是 http://registry.npmjs.com/-/v1/search?text=&size=20



5> Josh Habdas..:

如果找不到软件包,或者只是一起破解Shell脚本,则注册表git仓库中的Registry API Docs包含有关Search API和搜索限定符的详细信息。

如果要在公共注册表中查找最流行的不安全软件包,请运行:

wget -qO - "http://registry.npmjs.com/-/v1/search?text=is:insecure&popularity=1.0&size=1"

上面的代码使用is:insecure搜索限定符而没有任何其他文本条件,并size=1popularity=1.0(最流行的)地方获取结果。

在存储库中的docs目录中检查许多其他有用的东西,例如:

响应包元数据的详细列表。

复制作用域和无作用域程序包的API。

有关获取下载计数的信息。

演练如何创建注册表“跟随者”。



6> 小智..:

看一下sinopia注册表界面:https : //github.com/rlidwka/sinopia/blob/master/lib/index-api.js。npm客户端的默认注册表为https://registry.npmjs.org(在控制台上尝试:npm config ls -l)。因此,您可以尝试以下操作(引用sinopia API)以获取有关react 15.0.2的数据

https://registry.npmjs.org/react/15.0.2

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有