Mediawiki 如何将两个WikipediaAPI调用合并为一个?

Mediawiki 如何将两个WikipediaAPI调用合并为一个?,mediawiki,wikipedia,wikipedia-api,mediawiki-api,Mediawiki,Wikipedia,Wikipedia Api,Mediawiki Api,我正在调用WikipediaAPI,它返回该位置的标题、快照文本、图像和地理坐标。我的维基百科API是: https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts|pageimages|coordinates&titles=Berlin&redirects=1&formatversion=2&exintro=1&explaintext=1&pi

我正在调用WikipediaAPI,它返回该位置的标题、快照文本、图像和地理坐标。我的维基百科API是:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts|pageimages|coordinates&titles=Berlin&redirects=1&formatversion=2&exintro=1&explaintext=1&piprop=thumbnail&pithumbsize=400
我还使用了另一个维基百科API,它根据地名的地理坐标返回地名列表:

https://en.wikipedia.org/w/api.php?format=json&action=query&list=geosearch&gsradius=1000&gscoord=52.5243700|13.4105300&gslimit=50&gsprop=type|dim|globe
对于第二个API,我得到如下响应:

"query": {
    "geosearch": [
        {
            "pageid": 28782169,
            "ns": 0,
            "title": "1757 Berlin raid",
            "lat": 52.523405,
            "lon": 13.4114,
            "dist": 122.4,
            "primary": "",
            "type": null,
            "dim": 1000
        },
        {
            "pageid": 526195,
            "ns": 0,
            "title": "Scheunenviertel",
            "lat": 52.526111111111,
            "lon": 13.41,
            "dist": 196.9,
            "primary": "",
            "type": "landmark",
            "dim": 1000
        },
        ...
    ]
}
现在我想将这两个搜索合并到一个API中。我想在第二个API中添加来自第一个API的信息,如下所示:

"query": {
    "geosearch": [
        {
            "pageid": 28782169,
            "ns": 0,
            "title": "1757 Berlin raid",
            "lat": 52.523405,
            "lon": 13.4114,
            "dist": 122.4,
            "primary": "",
            "type": null,
            "dim": 1000

            "pages": [
                {
                    "pageid": 28782169,
                    "ns": 0,
                    "title": "1757 Berlin raid",
                    "extract": "Berlin is the capital of Germany and one of the 16 states of Germany. With a population of 3.5 million people, it is the second most populous city proper and the seventh.........",
                    "thumbnail": {
                        "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Siegessaeule_Aussicht_10-13_img4_Tiergarten.jpg/400px-Siegessaeule_Aussicht_10-13_img4_Tiergarten.jpg",
                        "width": 400,
                        "height": 267
                    }
                }
            ]
        },
        ...
    ]
}

我想知道这样做是否可行?

因此,如果我理解正确,您希望通过一个Wikipedia API请求来获取标题、快照文本、图像和地理坐标,并将您的第一个API用于Wikipedia文章位于某个特定区域内的所有位置(按给定坐标和半径),即您的第二个API。如果正确,可以通过以下方式执行:

:format=json&action=query

:

重定向=1 generator=geosearch第二个API:参见第3点 prop=从第一个API中提取|坐标|页面图像:参见第4、5和6点 所有发电机参数都以g为前缀:

ggslimit=20-查询的总结果,因为exlimit=20 ggsradius=1000&ggscoord=52.5243700 | 13.4105300-这是您的切入点 :exintro=1&explaintext=1&exlimit=20最大exlimit为20

:coprop=type | dim | globe&colimit=20最大colimit为500

:piprop=缩略图和pithumbsize=400和pilimit=20最大值为50

你怎么看,最大值是500,最大值是50,但我们不能超过20,因为exlimit

最后,您的请求将加入上述所有参数:

https://en.wikipedia.org/w/api.php?format=json&action=query&redirects=1&generator=geosearch&prop=extracts|coordinates|pageimages&ggslimit=20&ggsradius=1000&ggscoord=52.5243700|13.4105300&exintro=1&explaintext=1&exlimit=20&coprop=type|dim|globe&colimit=20&piprop=thumbnail&pithumbsize=400&pilimit=20
以下是回应:

查询:{ 页码:{ 2511:{ 页码:2511, ns:0, 标题:亚历山大广场, 摘录:Alexanderplatz发音[\u0294al\u025bk\u02c8sand\u0250\u02ccplats]是柏林中央米特区的一个大型公共广场和交通枢纽,靠近费尔南施图姆。柏林人通常称之为“亚历克斯”,指的是从东北部的莫尔斯特拉到西南部的斯潘道尔斯特拉和罗特斯拉特豪斯的一个较大的街区。, 坐标:[ { 拉脱维亚:52.52166748, 伦敦:13.41333294, 初级:, 类型:landmark, 数字:1000, 地球:地球 } ], 缩略图:{ 资料来源:https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm/400px-Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm.jpg, 宽度:400, 身高:225 } }, ... }, }
因此,如果我理解正确的话,您希望通过一个Wikipedia API请求获得标题、快照文本、图像和地理坐标,通过给定的坐标和半径,将Wikipedia文章位于某个特定区域的所有位置的第一个API与第二个API进行对比。如果正确,可以通过以下方式执行:

:format=json&action=query

:

重定向=1 generator=geosearch第二个API:参见第3点 prop=从第一个API中提取|坐标|页面图像:参见第4、5和6点 所有发电机参数都以g为前缀:

ggslimit=20-查询的总结果,因为exlimit=20 ggsradius=1000&ggscoord=52.5243700 | 13.4105300-这是您的切入点 :exintro=1&explaintext=1&exlimit=20最大exlimit为20

:coprop=type | dim | globe&colimit=20最大colimit为500

:piprop=缩略图和pithumbsize=400和pilimit=20最大值为50

你怎么看,最大值是500,最大值是50,但我们不能超过20,因为exlimit

最后,您的请求将加入上述所有参数:

https://en.wikipedia.org/w/api.php?format=json&action=query&redirects=1&generator=geosearch&prop=extracts|coordinates|pageimages&ggslimit=20&ggsradius=1000&ggscoord=52.5243700|13.4105300&exintro=1&explaintext=1&exlimit=20&coprop=type|dim|globe&colimit=20&piprop=thumbnail&pithumbsize=400&pilimit=20
以下是回应:

查询:{ 页码:{ 2511:{ 页码:2511, ns:0, 标题:亚历山大广场, 摘录:Alexanderplatz发音[\u0294al\u025bk\u02c8sand\u0250\u02ccplats]是柏林中央米特区的一个大型公共广场和交通枢纽,靠近费尔南施图姆。柏林人通常称之为“亚历克斯”,指的是从东北部的莫尔斯特拉到西南部的斯潘道尔斯特拉和罗特斯拉特豪斯的一个较大的街区。, 坐标:[ { 拉脱维亚:52.52166748, 伦敦:13.41333294, 初级:, 类型:landmark, 数字:1000, 地球:地球 } ], 缩略图:{ 资料来源:https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm/400px-Alexanderplatz_by_the_night_-_ProtoplasmaKid.webm.jpg, 宽度:400, 身高:225 } }, ... }, }
非常感谢你。这正是我想要的
去做。非常感谢。@terminja我该如何申请下一个结果页?@terminja我的意思是如何获得接下来的20个最近的位置。您的请求的响应没有“继续”选项parameter@allo86我已经回答了这个问题——你不可能非常感谢你。这正是我想做的。非常感谢。@terminja我该如何申请下一个结果页?@terminja我的意思是如何获得接下来的20个最近的位置。您的请求的响应没有“继续”选项parameter@allo86我已经回答了-你不可能