https://rubygems.org/api/v1/search.json
只提供30个宝石,但在我的本地机器上,我可以使用gem list --remote
获取所有宝石。
我阅读http://guides.rubygems.org/rubygems-org-api/
,并且不存在可以获取列表中所有宝石的API。如何通过网络获取列表?或者,有人提供此吗?
我想要宝石的名字至少,但如果可能的话,我想得到名称和版本。
我认为gem list --remote
是通过网络进行的,因此我可以获取所有宝石列表。
答案 0 :(得分:12)
您可以使用https://rubygems.org/latest_specs.4.8.gz
返回gzipped marshal dumped数组,如下所示:
[["abscss", Gem::Version.new("0.0.1"), "ruby"],
["absee", Gem::Version.new("1.0"), "ruby"],
["absentee_camper", Gem::Version.new("0.0.7"), "ruby"],
["absgit", Gem::Version.new("0.3.0"), "ruby"],
["absinthe", Gem::Version.new("0.0.3"), "ruby"],
["absolute", Gem::Version.new("0.0.5"), "ruby"],
["AbsoluteRenamer", Gem::Version.new("1.1.2"), "ruby"],
["AbsoluteRenamer-date", Gem::Version.new("0.1.0"), "ruby"]]
但如果您使用的是Ruby,我强烈建议您使用gem fetcher:
require 'rubygems/spec_fetcher'
fetcher = Gem::SpecFetcher.fetcher
tuples = fetcher.detect(:released) { true }
tuples
现在是[Gem::NameTuple, Gem::Remote]
的元组数组。你可以用这个做些什么的例子:
tuples[1337][0].name # => GraphvizR
tuples[1337][0].version.to_s # => "0.1.0"
答案 1 :(得分:1)
您可以通过列表提供page
查询参数以进行分页,例如:
https://rubygems.org/api/v1/search.json?query=main&page=2