跳到内容

最近一次提交

 

历史

历史
347行(243个位置)·16.4 KB

API-docs.md公司

文件元数据和控件

347行(243个位置)·16.4 KB

API文档:v1

有关MetaCPAN API(应用程序接口)的介绍,该API不需要事先了解MetaCPAN或ElasticSearch,请参阅“滥用MetaCPAN以获取乐趣和利润”的幻灯片观看实际对话此API允许您从自己的应用程序以编程方式访问MetaCPAN。

还有示例库你可以和一起玩,赶紧起来跑。请发送元平移示例存储库的拉取请求,而不是编辑此wiki页面。如果你想编辑wiki,请这样做,但发送代码拉请求可能是最有帮助的方法。

可以使用MetaCPAN浏览器

要了解有关ElasticSearch查询DSL(领域特定语言)的更多信息,请查看Clinton Gormley的专用条款-ES Query DSL解释幻灯片。

ElasticSearch的参考页。您也可以查看有关Elasticsearch的入门教程参考页.

有礼貌

目前,使用API的唯一规则是“礼貌”。我们对搜索请求执行了5000个大小的上限。如果需要获取超过5000个项目,应该考虑使用滚动API。在本页中搜索“滚动”以获得使用的示例搜索::Elasticsearch或查看Elasticsearch滚动文档如果你以其他方式连接。

如果您获取的项目少于5000个,您当然可以滚动。如果您需要一个大数据集,那么可能需要这样做,但仍然需要运行许多请求来获取所有必需的数据。

请注意,当您滚动时,您的文档将返回未排序状态,如ElasticSearch扫描文档.

自我认同

礼貌的一部分是让我们知道你是谁以及如何联系你。这不是强制性的,但请考虑将你的应用程序添加到API-消费者第页。

可用字段

可通过访问相应的_映射端点。

现场文件

字段记录在API代码库中:https://github.com/metapan/metacpan-api/tree/master/lib/metacpan/Document查看播客,了解各个字段代表什么。一定要看一下https://github.com/metapan/metacpan-api/blob/master/lib/metacpan/Document/File.pm特别是因为/module的结果实际上是文件类型。

无约束搜索

在没有任何约束的情况下执行搜索是获取示例数据的简单方法

JSONP格式

只需添加回调使用回调的名称查询参数,您将得到一个JSONP响应。

获取便利URL

您应该能够运行大多数POST查询,但目前公开的GET URL很少。然而,这些方便的端点可以帮助您开始。您应该注意到,它们的行为与POST查询不同,因为它们将向您返回模块或dist的最新版本,并删除包装结果的大量详细ElasticSearch数据。

/分布/{distribution}

这个/分配端点接受分布(例如。/分销/驼鹿),它返回有关不特定于版本的分发信息(如RT错误计数)。

/download_url/{模块}

这个/下载url端点是专门为cpanm公司客户端。它采用带有可选版本(或版本范围)和可选开发标记(用于开发版本)并返回下载url以及其他一些有用的信息。

显然,任何人都可以使用此端点,但我们只会在考虑如何更改此端点之后再考虑cpanm公司可能会受到影响。

/发布/{分发}

/release/{author}/{release}

这个/释放端点接受分布(例如。/释放/驼鹿),它返回发行版的最新版本。或提供由其作者和名称释放(例如。/发布/DOY/Moose-2.0001).

/作者/{author}

作者指的是作者的贫困。它必须大写(例如。/作者/DOY).

/模块/{模块}

返回相应的文件的最新版本模块考虑到Moose-2.0001是最新版本/模块/驼鹿与相同/文件/DOY/Moose-2.001/lib/Moose.pm.

/pod/{模块}

/pod/{author}/{release}/{path}

返回给定模块的POD。您可以通过传递内容类型查询参数(例如。/吊舱/驼鹿?content-type=文本/普通或通过添加接受HTTP请求的标头。有效的内容类型为:

  • text/html(默认)
  • 文本/纯文本
  • 文本/x-pod
  • 文本/x标记

/源/{模块}

返回给定的最新授权版本的完整源代码模块.

GET搜索

OALDERS最新版本名称:

https://fastapi.metacpan.org/v1/release/_search?q=author:OALDERS%20AND%20status:latest&fields=name,状态和大小=100

5000名CPAN作者:

https://fastapi.metacpan.org/v1/author/_search?q=*&尺寸=5000

所有提供Twitter ID的CPAN作者:

https://fastapi.metacpan.org/v1/author/_search?q=profile.name:twitter

所有更新了MetaCPAN配置文件的CPAN作者:

https://fastapi.metacpan.org/v1/author/_search?q=更新:*&sort=更新:desc

SZABGAB给出++的前100个分布:

https://fastapi.metacpan.org/v1/收藏夹/搜索?q=用户:sWuxlxYeQBKoCQe1f-FQ_Q&size=100&fields=分布

最近的100个版本(类似于https://metapan.org/recent)

https://fastapi.metacpan.org/v1/release/_search?q=status:latest&fields=name,status,date&sort=日期:desc&size=100

DOY的dist收到的++个“e”的数量:

https://fastapi.metacpan.org/v1/favorite/_search?q=author:DOY&size=0

拥有++'ed DOY dists和++'ed dists的用户列表:

https://fastapi.metacpan.org/v1/favorite/_search?q=author:DOY&fields=user,分发

最后50个dists获得++:

https://fastapi.metacpan.org/v1/favorite/_search?size=50&fields=author,user,release,date&sort=日期:desc

Test Simple分发版的Changes文件:

https://fastapi.metacpan.org/v1/changes/Test-Simple网站

使用MetaCPAN::Client查询API

也许开始使用MetaCPAN的最简单方法是MetaCPAN::客户端.

你可以开始获取作者数据的示例脚本.

使用Search::Elasticsearch查询API

位于fastapi.metacpan.org的API服务器是弹性搜索实例。它添加了对方便的GET URL的支持,处理身份验证并进行一些访问控制。因此,您可以使用强大的API搜索::Elasticsearch查询MetaCPAN。

注释:该cxn_pool=>'静态::NoPing'之所以重要,是因为Elasticsearch前面有HTTP代理。

你可以开始获取作者数据的示例脚本.

POST搜索

当您在自己的工作中使用它们时,请随时在此处添加查询,以便其他人可以向您学习。

下游依赖关系

此查询返回列出MooseX::NonMoose作为附属国。

卷曲-XPOSThttps://fastapi.metacpan.org/v1/release/_search-天'{
“大小”:5000,
“字段”:[“分发”],
“过滤器”:{
“和”:[
{“term”:{“dependency.module”:“MooseX::NonMoose”}},
{“术语”:{“成熟度”:“发布”}},
{“术语”:{“状态”:“最新”}}
]
}
}'

请注意,还可以通过将JSON查询适当编码为来源参数。例如,上面的查询会变成:

卷曲'https://fastapi.metacpan.org/v1/release/_search?source=%7B%22query%22%3A%7B%22match_all%22%3A%7B%7D%2C%22size%22%3A5000%2C%22%fields%22%3A/5B%22distribution%22%5D%2C%22filter%22%3A/7B%22和%22%3A%5 B%7B%22%22term%22%3A%3A%7B%22 release.dependency.module%22%3A%22MooseX%3ANonMoose%22%7 D%7D%2C%7B%22term%22%3A%7B%22发布。到期日%22%3A%22发布%22%7D%7D%2%7B%22term%22%AA%7B%22释放。状态%22%3A%22最新%22%7D%7D%5D%7D%7D'

获取任意时间跨度内所有版本的许可证类型:

卷曲-XPOSThttps://fastapi.metacpan.org/v1/release/_search?尺寸=100-d'{
“查询”:{
“范围”:{
“日期”:{
“gte”:“2010-06-05T00:00:00”,
“lte”:“2011-06-05T00:00:00”
}
}
},
“字段”:[“license”,“name”,“distribution”,“date”,“version_numified”]
}'

按许可证汇总:

卷曲-XPOSThttps://fastapi.metacpan.org/v1/release/_search-d日'{
“查询”:{
“match_all”:{}
},
“aggs”:{
“许可证”:{
“条款”:{
“field”:“license”
}
}
},
“大小”:0
}'

版本根目录中最常用的文件名:

卷曲-XPOSThttps://fastapi.metacpan.org/v1/file/_search-d日'{
“query”:{“filtered”:{“query”:{“match_all”:{}},“filter”:{“term”:{“level”:0}}}
},
“aggs”:{
“许可证”:{
“条款”:{
“大小”:100,
“字段”:“名称”
} } },
“大小”:0
}'

查找包含模块特定版本的所有版本:

卷曲-XPOSThttps://fastapi.metacpan.org/v1/file/_search-d日'{
“查询”:{“已筛选”:{
“查询”:{“match_all”:{}},
“筛选器”:{“和”:[
{“term”:{“module.name”:“DBI::Profile”}},
{“术语”:{“模块版本”:“2.014123”}}
]}
}},
“字段”:[“释放”]
}'

获取您喜爱的模块的最新版本号

请注意,“大小”应该是您正在寻找的发行版的数量。

lynx--转储--post_datahttps://fastapi.metacpan.org/v1/release/_search<<终止
{
“查询”:{“术语”:{-“分发”:[
“Mojolicious”,
“MetaCPAN-API”,
“DBIx-Class”
] } },
“过滤器”:{“术语”:{-“状态”:“最新”}},
“字段”:[“分发”,“版本”],
“大小”:3
}
终止

获取目录为false且路径为空的所有文件的列表

卷曲-XPOSThttps://fastapi.metacpan.org/v1/file/_search-d日'{
“查询”:{
“match_all”:{}
},
“大小”:1000,
“字段”:[“名称”,“状态”,“目录”,“路径”,“分发”],
“过滤器”:{
“和”:[
{“term”:{“directory”:false}},{“tem”:}“path”:“}}
]
}
}'

列出有bugtracker电子邮件地址但没有url的版本

卷曲-XPOSThttps://fastapi.metacpan.org/v1/release/_search-d日'{
“查询”:{
“match_all”:{}
},
“大小”:10,
“字段”:[“名称”,“resources.bugtracker.mailto”],
“过滤器”:{
“和”:[
{“术语”:{“成熟度”:“发布”}},
{“术语”:{“状态”:“最新”}},
{“exists”:{“field”:“resources.bugtracker.mailto”}},
{“缺少”:{“字段”:“resources.bugtracker.web”}}
]
}
}'

在当前PDL文档中搜索字符串

卷曲-XPOSThttps://fastapi.metacpan.org/v1/file/_search-d日'{
“查询”:{“已筛选”:{
“查询”:{
“query_string”:{
“query”:“轴值”,
“字段”:[“pod.analysed”,“module.name”]}
},
“过滤器”:{“和”:[
{“术语”:{“分发”:“PDL”}},
{“术语”:{“状态”:“最新”}}
]}
}},
“字段”:[“documentation”,“abstract”,“module.name”],
“大小”:20
}'