订购HTTP API的结果

问题描述 投票:2回答:3

试图找到一种从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后执行此操作?

php xml matomo
3个回答
3
投票

继续评论:

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

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

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


1
投票

其中一位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中对每个dataTable进行排序

所以基本上排序应用于每个日期的数据,因为VisitsSummary.get没有多行,所以没有任何排序。

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

(Qazxswpoi)

在此功能之前,我建议对数据客户端进行排序。


0
投票

尽管你已经接受了我的答案,但现在你已经发布了https://forum.piwik.org/t/filter-sort-order-not-working-on-visitssummary-get/26710/4,我认为这是正确的答案:

可选的API参数

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

这两者的组合似乎是你的答案

filter_column;定义我们要搜索文本的列(请参阅filter_pattern)。如果未指定,则默认为“标签” 。 filter_sort_order;定义结果的顺序,asc或desc

如果您无法弄明白,请尝试通过URL of the API与他们联系或询问https://developer.piwik.org/support的其他用户

© www.soinside.com 2019 - 2024. All rights reserved.