MediaWiki API - 在 API 调用 url 中 'opensearch' & 'query' 和 'generator' & 'list' 有什么区别
MediaWiki API - what are the differences between 'opensearch' & 'query', and 'generator' & 'list' in the API call url
我正在尝试使用 mediawiki API 来完成 FreeCodeCamp 上的一个项目。我已经通读了 API 文档中的这些页面:
目前还不清楚真正的区别是什么,以及何时以及为什么我需要使用每一个。这是我进行的三个 API 调用,每个调用产生的结果略有不同:
en.wikipedia.org/w/api.php?action=opensearch&search=Albert
在这里,我得到一个包含 4 个项目的数组,第一个是搜索词,第二个是结果页面标题列表,第三个是每个页面的一小段,第四个是 URL到每页。
en.wikipedia.org/w/api.php?action=query&generator=search&gsrsearch=Albert&format=json
这里面有个generator=search
,我没看懂。在生成器的 API 页面上,它只是说:Get the list of pages to work on by executing the specified query module.
,这并不是很有帮助。这是什么意思?
en.wikipedia.org/w/api.php?action=query&list=search&srsearch=Albert&format=json
除了我使用的是 list=search
,这与上一个相同。
所以我的问题是:
在第一次和第二次调用之间,我使用的是 action=opensearch
和 action=query
:真正的区别是什么?
list
和generator
有什么区别?
最后,为什么在使用 generator=search
时,gsrprop=snippet
不显示任何片段:API Sandbox for this, and why does inprop=url
not work when using list=search
: API Sandbox for this
如您所见,两者几乎相同,除了一个使用生成器,另一个使用列表,但都提到了 inprop=url 和代码片段(srprop 和 gsrprop)。
opensearch
用于 OpenSearch API。除非你正在实施 API (即你正在编写浏览器或搜索引擎或类似的东西)你不应该使用它。 list=prefixsearch
提供类似的功能,但没有 OpenSearch 合规性所需的语法怪癖。
生成器用于将 "pipe" 结果转化为另一个 API。 list=search
和 generator=search
将为您提供相同的页面集,但在第一种情况下,有关页面的信息将由搜索模块提供(例如,如果您指定 srprop=snippet
,它将添加在片段中),在第二种情况下,它将由您添加到 prop=
参数的任何 API 模块提供(这就是 gsrprop=snippet
不执行任何操作的原因)。这基本上是进行搜索查询然后查询一些数据以获得结果的快捷方式。
我正在尝试使用 mediawiki API 来完成 FreeCodeCamp 上的一个项目。我已经通读了 API 文档中的这些页面:
目前还不清楚真正的区别是什么,以及何时以及为什么我需要使用每一个。这是我进行的三个 API 调用,每个调用产生的结果略有不同:
en.wikipedia.org/w/api.php?action=opensearch&search=Albert
在这里,我得到一个包含 4 个项目的数组,第一个是搜索词,第二个是结果页面标题列表,第三个是每个页面的一小段,第四个是 URL到每页。
en.wikipedia.org/w/api.php?action=query&generator=search&gsrsearch=Albert&format=json
这里面有个generator=search
,我没看懂。在生成器的 API 页面上,它只是说:Get the list of pages to work on by executing the specified query module.
,这并不是很有帮助。这是什么意思?
en.wikipedia.org/w/api.php?action=query&list=search&srsearch=Albert&format=json
除了我使用的是 list=search
,这与上一个相同。
所以我的问题是:
在第一次和第二次调用之间,我使用的是
action=opensearch
和action=query
:真正的区别是什么?list
和generator
有什么区别?最后,为什么在使用
generator=search
时,gsrprop=snippet
不显示任何片段:API Sandbox for this, and why doesinprop=url
not work when usinglist=search
: API Sandbox for this
如您所见,两者几乎相同,除了一个使用生成器,另一个使用列表,但都提到了 inprop=url 和代码片段(srprop 和 gsrprop)。
opensearch
用于 OpenSearch API。除非你正在实施 API (即你正在编写浏览器或搜索引擎或类似的东西)你不应该使用它。 list=prefixsearch
提供类似的功能,但没有 OpenSearch 合规性所需的语法怪癖。
生成器用于将 "pipe" 结果转化为另一个 API。 list=search
和 generator=search
将为您提供相同的页面集,但在第一种情况下,有关页面的信息将由搜索模块提供(例如,如果您指定 srprop=snippet
,它将添加在片段中),在第二种情况下,它将由您添加到 prop=
参数的任何 API 模块提供(这就是 gsrprop=snippet
不执行任何操作的原因)。这基本上是进行搜索查询然后查询一些数据以获得结果的快捷方式。