【问题标题】:Order results of an HTTP APIHTTP API 的排序结果
【发布时间】:2017-12-21 07:52:33
【问题描述】:

试图找到一种方法来重新排序来自 HTTP API 的结果。这是一个例子

https://demo.piwik.org/?module=API&method=VisitsSummary.get&idSite=7&period=month&date=last3&format=xml&token_auth=anonymous

返回

<results>
   <result date="2017-10"/>
   <result date="2017-11"/>
   <result date="2017-12"/>
</results>

但是,我希望它返回为

<results>
   <result date="2017-12"/>
   <result date="2017-11"/>
   <result date="2017-10"/>
</results>

我曾尝试在 URL 中使用 filter_sort_order,但这不起作用。有没有办法在 URL 中执行此操作,或者在PHP 中的解决方案可以让这篇文章获得XML

【问题讨论】:

  • 你在写服务器代码吗?即使没有,我也不确定为什么在客户端对 JS 中的结果进行排序如此困难
  • API 是否在任何地方发布?
  • 不,我不是在写服务器代码。它来自一个自托管的 Piwik 服务器作为页面分析。我没有尝试在 JS 中进行排序,因为 API 以 $url = " 的形式直接拉入 PHP,结果输出为 print("$value");
  • 那么你能在任何地方找到记录在案的 API/联系任何人询问他们吗?
  • 是否可以在 PHP 中做到这一点?根据 Piwik developer.piwik.org/api-reference/reporting-api 我应该能够通过将 &amp;filter_sort_order=asc 添加到 API URL 来进行排序

标签: php xml matomo


【解决方案1】:

接cmets:

抱歉,如果 API 没有提供选项,那么您必须接受它发送的内容。

如果您希望对结果进行排序,那么您可以在 JavaScript 中对它们进行客户端排序,或者从您自己的服务器端 PHP 中获取数据,对它们进行排序,然后将其作为 API 提供给客户端。

如果您想要几种不同类型的排序,那么我建议使用后者。

【讨论】:

  • 这里的文档developer.piwik.org/api-reference/reporting-api 似乎支持排序,但它对我不起作用。我喜欢你的回答,我很确定它激发了我的解决方案。
  • 总有另一种看待事物的方式:-) 但是,请参阅我的其他答案。如果开发人员无法提供帮助,请尝试在论坛上询问其他用户。祝你好运
【解决方案2】:

一位 Piwik 开发人员回答如下:

您好,报告应该按日期列出。此处的报告没有维度(只有主要指标)。具有维度的报告已排序,但确实对日期内的每个数据表进行排序...https://demo.piwik.org/?module=API&method=Actions.getPageUrls&idSite=7&period=month&date=last30&format=json&token_auth=anonymous&filter_sort_column=nb_visits&filter_sort_order=desc

所以基本上排序应用于每一天的数据,因为 VisitsSummary.get 没有多行,所以没有排序。

将排序过滤器应用于没有维度的报表的日期不是解决方案,因为我们需要对有维度和没有维度的报表进行一致的排序行为。使其可排序是一项新功能,并且需要一个新的 API 参数

(https://forum.piwik.org/t/filter-sort-order-not-working-on-visitssummary-get/26710/4)

直到这是我推荐的对数据客户端进行排序的功能。

【讨论】:

  • 谢谢 Lukas,我找到了一个解决方案,只需使用获取数据的 krsort($content);
【解决方案3】:

尽管您已经接受了我的回答,但既然您已经发布了URL of the API,我认为这个是正确的答案:

可选的 API 参数

每个 API 调用都可以包含未出现在列表中的参数 参数,但充当“过滤器”。过滤器可以...充当数据 助手(排序结果...)。”。

这两者的结合似乎就是你的答案

filter_column ;定义我们要搜索文本的列 (参见 filter_pattern)。如果未指定,默认为 'label'
.
过滤排序顺序;定义结果的顺序,asc 或 desc

如果您无法弄清楚,请尝试通过https://developer.piwik.org/support 联系他们或通过the forum 询问其他用户

【讨论】:

  • 感谢您花时间阅读这些内容。我遵循了他们的文档,但它对我没有用。通话后可能会阻止它。您的其他答案最好与了解需要什么有关,并使我走上学习其他选择的正确轨道。我现在已经整理好了,没有双关语的意思。
  • Loxl !加一个用于对其进行排序。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 2015-03-22
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多