3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypeScriptでWikipedia APIから情報取得

Posted at

TypeScriptでWikipediaの情報をmediawiki APIにより取得する。
WikipediaのAPIに関してはMediaWiki APIを使ってWikipediaの情報を取得を参考にした。

目標

ある文字列を含む記事の検索結果を取得する。

返り値の確認

APIサンドボックスを使って確認する。
形式=json、操作=query, list=search、srsearch=「検索文字列」にしてリクエストすれば、返り値が確認できる。
APIサンドボックス.PNG
APIサンドボックス結果.PNG

TypeScriptソースコード

APIサンドボックスのリクエスト結果からリクエストコードを書く。
リクエストにはjqueryを使用している。

Wikipedia.ts
namespace utils.Wikipedia {
    const ENDPOINT = 'https://ja.wikipedia.org/w/api.php?'
    const TITLE_BASE_URL = ENDPOINT + 'action=query&list=search&format=json&srsearch='

    export function search(title: string, success: (infos: Array<SearchInfo>) => void, fail?: (jqXhr: JQueryXHR) => void) {
        var url = TITLE_BASE_URL + encodeURIComponent(title)
        var xhr = $.ajax({
            url: url,
            type: 'GET',
            dataType: 'jsonp',
            jsonpCallback: 'callback'
        })
        xhr.then((json: SearchResponseJson) => {
            success(json.query.search)
        }, fail)
    }

    interface SearchResponseJson {
        query: {
            search: Array<SearchInfo>
        }
    }

    export interface SearchInfo {
        title: string,
        snippet: string,
        wordcount: number,
        timestamp: string
    }
}
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?