API:Main page/ja


 * このページでは、「操作」API の概要を記述します. 下位トピックや他の API の詳細は、右のメニュー バーを参照してください. 

MediaWiki 操作 API は、ウィキの機能、データ、メタデータに、通常は にある URL 経由で、HTTP でアクセスする便利な手段を提供するウェブ サービスです. クライアントが パラメータを指定して特定の「アクション」を要求したときは、おもに   によって情報を得ます. 通称は 究極の MediaWiki API でしたが、今では MediaWiki に接続するその他のウェブ API MediaWiki があります. たとえば REST API も ウィキデータ・クエリサービスもその一部です.

はじめに
MediaWiki の操作 API は、MediaWiki のインストレーションを監視したり、自動的に保守するためのボットを作成するために使用できます. ウェブ API は、MediaWiki のデータベース内のデータへの直接的で高水準なアクセス手段を提供します. クライアント プログラムは、ウェブ サービスに対して HTTP リクエストを送信することで、ウィキにログインする、データを取得する、変更内容を投稿するという処理を自動的に実行できます. 対応しているクライアントには、ボット、Navigation popups などのウェブベース JavaScript クライアント、LiveRC、Vandal Fighter などのエンド ユーザー アプリケーション、その他のウェブ サイト ([//tools.wmflabs.org Toolforge]のユーティリティ) などがあります.

MediaWiki の新しいインストレーションでは、ウェブ サービスは既定で有効になっていますが、管理者が無効化することができます.

MediaWiki には外部向けのインターフェイスが他に 2 つあります:


 * Special:Export ページ. ウィキのコンテンツを XML 形式で一括して書き出せるページです. 詳細情報は  をお読みください.
 * 標準のウェブベースのインターフェイス (あなたが今、このページを閲覧するためにおそらく使用しているインターフェイス). ウェブベースのインターフェイスの使用についての情報は  をお読みください.

単純な例
この URL は、英語版ウィキペディアのウェブ サービス API に、メインページの本文を送信させます:

HTTP GET リクエストを送信するために、あらゆるプログラミング言語を使用できます (単にブラウザーでリンクにアクセスするだけでも構いません). すると、「Main Page」という名前のページの現在のウィキ マークアップを含む JSON 文書が得られます. 形式を　 に変更することで、「pretty-printed」(読みやすく整形された) HTML が得られます. これはデバッグに役立ちます.

URL を分解して機能の仕組みを調べることにします.

エンドポイント
これが「エンドポイント」です. MediaWiki ウェブ サービス API のホームページのようなものです. このURLは英語版ウィキペディアのAPIの基本URLで、ちょうど がこのウェブサイトの基本URLであるのと対比できます.

もし英語版ウィキペディアで走るプログラムを作成するなら、構築するURLすべての冒頭は、この基本URLで始まります. もしそれ以外のMediaWikiインストレーションを使用するなら、まずそのエンドポイントを調べて、それを使用します. ウィキメディアのウィキでは、エンドポイントはそれぞれ以下の形式に従います.

以降はエンドポイントにRSDを用いています. ページ内でHTMLソースの 部分を探し、 URLを抽出します. 実際のリンク先に詳細な説明があります. 例えば、このウィキでは下記の部分が該当します:

これ以外に、どのウィキであってもエンドポイントを安全に見つける方法はありません. 運がいいと、index.phpのフルパスを奇妙な書き換えルールの陰に隠さずに提供してあり、処理は「edit」（あるいは履歴 history）リンクからindex.php (etc.) をapi.phpに書き換えるだけの場合、あるいは既定のscript path（ など）を使えばよい場合などがありえます.

次に注目するのは、URLのクエリ行の変数です.

形式 (format)
APIに対し、データ返り値をJSON形式にするよう指示します. バグ修正に使うHTML版を入手するなら、 を試用してみましょう. APIは他にも XML や native PHP のような出力形式をサポートしていますが、使用頻度の低い形式を廃止する (T95715) ことが計画されており、それらの使用はおすすめできません.

操作 (action)
MediaWikiウェブサービスAPIは何十種類もの操作を実行でき、拡張機能はさらに多くを実行します. API helpを開くと特定のウィキでどんな操作が使えるか、動的な構造の説明文書に網羅してあります. この事例では情報を得るために「query」操作を選びました. 「query」つまり照会（クエリ）とはAPIの最も重要な操作で、専用の詳しい説明文書が用意されています. 下記に示す解説は、たった1つの例を説明しています.

操作固有のパラメーター
上記のURLのサンプルに戻り、「query」操作の変数を見てみましょう. サンプルではウェブサービスAPIに、求めている情報は「Main Page」というウィキページに関するものだと指示しています. (%20 は 空白 (スペース) をパーセントエンコーディングしたものです. ) 複数のページを照会する場合は、すべてを1件の要求にまとめてネットワークとサーバのリソースを最適化する:. 詳細はクエリの説明文書を参照してください.

単一のページを対象に、多くの情報、つまりproperties（属性）を照会できます. 属性という変数はウェブサービスAPIに、ページの特定版から情報を得るように指示します. 特定版について何も情報を与えていないため、APIは最近の更新&mdash;ウィキペディアの現状のメインページの情報を返します.

その結果、この変数によってウェブサービスAPIに対し、そのページの最近の更新の内容を返すように指示します. もしも を与えた場合は、ぺの最近の更新の内容と、さらに直近に編集した利用者の名前を返します.

繰り返しますが、これは一例にすぎません. クエリ（照会）はこちらで詳しく解説し、the API referenceには可能な操作の他、 に与える全ての値の一覧などをまとめてあります.



さあ、はじめましょう
MediaWiki web service APIを使い始める前に、以下の文書を読んでください,


 * FAQ.
 * 入出力フォーマットについてのページ
 * エラーと警告についてのページ
 * Any policies that apply to the wiki you want to access, such as Wikimedia Foundation wikis' terms of use, trademark policy. These terms apply to you when you access or edit using the API, just as they do when you use your web browser.

それ以降に読むべきページは利用者の目的により決まります. 画面右手のメニューはタスク単位でまとめた詳しい説明文書のリンク集で、その他の一般的なガイドラインは下記に示してあります.

クライアントを識別する
MediaWikiウェブサービスAPIに対してHTTP依頼をするときは、ご利用のクライアントを正しく識別する 接頭辞を必ず明示してください. クライアントのライブラリが提供する既定の を使わず、ご利用のスクリプトまたはサービスを識別する固有の接頭辞を作成し、利用者とのなんらかの連絡手段（例えばメールアドレス）がわかるようにします.

ユーザーエージェントのストリングとして、次のサンプルを提示します： MyCoolTool/1.1 (https://example.org/MyCoolTool/; MyCoolTool@example.org) BasedOnSuperLib/1.4

ウィキメディアのウィキにおいて 接頭辞を示さない、あるいは値が空や特定不能の場合は、依頼に対してHTTP 403エラーを返します（User-Agent policy参照）. MediaWikiの他のインストレーションでも同様の方針が適用されます.

If you are calling the API from browser-based JavaScript, you won't be able to influence the  header: the browser will use its own. To work around this, use the  header:

In PHP, you can identify your user-agent with code such as this:

Or if you use cURL:

ログイン
クライアントはMediaWikiへのログインを求められることがあり、独自の利用者アカウントから入るように指示されるかもしれません. 詳細はログインの手続きのページを参照してください.

APIエチケット
API:エチケットも参照してください

もしキャッシュ可能なデータを要求した場合はキャッシュする手順を踏んでください. 同じデータを何度も要求しないためです. レート制限や並行性他、一般的なAPIエチケットをAPI:Etiquetteで説明しています. 中には独力でデータのキャッシュができるクライアントもいますが、その他（特にJavaScript使用者）には不可能です.

HTTP仕様により、POST要求はキャッシュの対象外です. そこでウェブサービスAPIからデータを書き出す場合は必ずGET要求を使うべきで、POSTは使いません.

またURLが完全に一致する場合を除き、キャッシュから要求は実行できない点にも合わせてご留意ください. を要求して結果をキャッシュすると、 の要求は — たとえ結果としてMediaWikiからの返し値が同値でも、キャッシュでは処理されません！

You should take care to normalize the URLs you send to the MediaWiki web service, so that slightly different user input won't cause you to waste time on unnecessary HTTP requests. You can normalize a list of page titles by removing duplicates and sorting the titles alphabetically. Similar techniques will work for other kinds of data.

便利なリンク
このページの画面右側のメニューバー（PC版表示）から、タスク単位でまとめた詳しい説明文書にリンクしています. API全体に関わるリンクの一部を次に示します：


 * ウィキメディアの全ウィキに用意されたAPI sandboxでは、さまざまな操作を楽にインタラクティブに試用できます.
 * [//en.wikipedia.org/w/api.php The API reference]には全操作と変数に関する自動作成された説明文書があります.
 * Hook into Wikipedia information using PHP and the MediaWiki API (「IBM developerWorks」より2011年5月17日現在 PHPとMediaWiki APIを使ってウィキペディアから情報を抽出する方法)
 * Hook into Wikipedia using Java and the MediaWiki API（2012年4月6日現在 JavaScriptとMediaWiki APIを使ってウィキペディアから情報を抽出する方法）
 * メーリングリストには通知と質問を掲載: API メーリングリスト
 * 通知専用のメーリングリスト. 流量は低い（こちらの投稿はすべてmediawiki-apiメーリングリストに転載）: mediawiki-api-announce
 * APIのバグの報告と閲覧はMediaWiki-API Phabricator projectでできます（新規のバグを報告する場合は、プロジェクトに必ずMediaWiki-APIを指定してください）
 * — MediaWikiデータベースの現状のスキーマ
 * — MediaWikiデータベースの現状のスキーマ

アーカイブリンク

 * 2006 API discussion &mdash;2006年ウィキマニアカンファレンスで行われたAPIの協議