瀏覽代碼

Merge pull request #1022 from frankdejonge/master

Added endpoint to fetch total downloads number.
Rob 6 年之前
父節點
當前提交
ef07aecb67

+ 11 - 0
src/Packagist/WebBundle/Controller/WebController.php

@@ -288,6 +288,17 @@ class WebController extends Controller
         );
     }
 
+    /**
+     * @Route("/statistics.json", name="stats_json", defaults={"_format"="json"}, methods={"GET"})
+     */
+    public function statsTotalsAction()
+    {
+        $downloads = $this->get('snc_redis.default_client')->get('downloads') ?: 0;
+        $totals = ['downloads' => $downloads];
+
+        return new JsonResponse(['totals' => $totals], 200);
+    }
+
     /**
      * @param Request $req
      *

+ 1 - 0
src/Packagist/WebBundle/Resources/translations/messages.en.yml

@@ -138,6 +138,7 @@ api_doc:
     by_name: By name
     by_type: By type
     by_tag: By tag
+    get_statistics: Get statistics
     list_by_organization: List packages by organization
     list_by_type: List packages by type
     searching: Searching for packages

+ 21 - 0
src/Packagist/WebBundle/Resources/views/api_doc/index.html.twig

@@ -19,6 +19,7 @@
     </ul>
   </li>
   <li><a href="#get-package-data">{{ 'api_doc.get_package_data'|trans }}</a></li>
+  <li><a href="#get-statistics">{{ 'api_doc.get_statistics'|trans }}</a></li>
 </ul>
 
 
@@ -205,5 +206,25 @@ GET https://{{ packagist_host }}/packages/[vendor]/[package].json
 
 </section>
 
+<section class="col-d-12">
+<h3 id="get-statistics">{{ 'api_doc.get_statistics'|trans }}</h3>
+
+<h4 id="get-package-by-name">{{ 'api_doc.get_statistics'|trans }}</h4>
+
+<p>This endpoint provides basic some statistics.</p>
+
+<pre>
+GET https://{{ packagist_host }}/statistics.json
+<code>
+{
+  "totals": {
+    "downloads": [numbers of download]
+  }
+}
+</code></pre>
+<p>Working example: <code><a href="https://{{ packagist_host }}/statistics.json">https://{{ packagist_host }}/statistics.json</a></code></p>
+
+</section>
+
 
 {% endblock %}