developmint/npm-stats-api

获取您的NPM包的统计信息

v2.0.0 2020-09-10 13:00 UTC

This package is auto-updated.

Last update: 2024-09-10 21:47:05 UTC


README

Latest Version on Packagist Software License Build Status Quality Score Total Downloads

此包可以轻松获取npmjs.com上托管包的统计信息

PS:它受到了Spatie的packagist-api包的极大启发

安装

您可以通过Composer安装此包

composer require developmint/npm-stats-api

使用方法

您必须将Guzzle客户端传递给Developmint\NpmStats\NpmStats的构造函数。

$client = new \GuzzleHttp\Client();

$npmStats = new \Developmint\NpmStats\NpmStats($client);

获取您选择的包的统计信息

$npmStats->getStats('jquery');

获取您选择的期间的统计信息

使用NpmStats类提供的常量来获取最后一天、一周、一个月、一年或总体的统计信息。

$npmStats->getStats('jquery', NpmStats::LAST_DAY);

您也可以传入特定的日期

$npmStats->getStats('jquery', '2017-01-01');

或者甚至范围

$npmStats->getStats('jquery', '2014-02-07:2014-02-14');

输出将已从json解码

array(4) {
  ["downloads"]=>
  int(198672)
  ["start"]=>
  string(10) "2017-10-10"
  ["end"]=>
  string(10) "2017-10-10"
  ["package"]=>
  string(6) "jquery"
}

以范围获取您选择的期间的统计信息

您还可以将统计信息作为范围获取,即按每天分割的下载量

$npmStats->getStats('jquery', NpmStats::LAST_WEEK, true);

这将是该调用的结果

array(4) {
  ["start"]=>
  string(10) "2017-10-04"
  ["end"]=>
  string(10) "2017-10-10"
  ["package"]=>
  string(6) "jquery"
  ["downloads"]=>
  array(7) {
    [0]=>
    array(2) {
      ["downloads"]=>
      int(200678)
      ["day"]=>
      string(10) "2017-10-04"
    }
    [1]=>
    array(2) {
      ["downloads"]=>
      int(195593)
      ["day"]=>
      string(10) "2017-10-05"
    }
    [2]=>
    array(2) {
      ["downloads"]=>
      int(172132)
      ["day"]=>
      string(10) "2017-10-06"
    }
    [3]=>
    array(2) {
      ["downloads"]=>
      int(51068)
      ["day"]=>
      string(10) "2017-10-07"
    }
    [4]=>
    array(2) {
      ["downloads"]=>
      int(46892)
      ["day"]=>
      string(10) "2017-10-08"
    }
    [5]=>
    array(2) {
      ["downloads"]=>
      int(171920)
      ["day"]=>
      string(10) "2017-10-09"
    }
    [6]=>
    array(2) {
      ["downloads"]=>
      int(198672)
      ["day"]=>
      string(10) "2017-10-10"
    }
  }
}

获取批量统计信息

当然,您可以一次性检索多达128个包的批量查询。只需用命令分隔它们,即可开始使用。

$npmStats->getStats('vue,express', NpmStats::LAST_WEEK);

但请注意!这仅在点模式下有效,不在范围模式下。

$npmStats->getStats('vue,express', NpmStats::LAST_WEEK, true);
//Won't work

无论如何,输出将与正常的点模式输出相似

array(2) {
  ["vue"]=>
  array(4) {
    ["downloads"]=>
    int(3980980980098089080980983)
    ["package"]=>
    string(5) "vue"
    ["start"]=>
    string(10) "2017-10-10"
    ["end"]=>
    string(10) "2017-10-10"
  }
  ["express"]=>
  array(4) {
    ["downloads"]=>
    int(818264)
    ["package"]=>
    string(7) "express"
    ["start"]=>
    string(10) "2017-10-10"
    ["end"]=>
    string(10) "2017-10-10"
  }
}

关于NPM统计API的更多信息

您可以在存储库README文件中找到有关NPM统计API如何工作的详细说明

API的限制

官方限制如下

  • 批量查询:一次最多128个包和最多365天的数据
  • 所有其他查询:最多限制18个月的数据
  • 最早可用日期:2015年1月10日

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

测试

$ composer test

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何安全问题,请通过support@developmint.de发送电子邮件,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件