Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
AurJsonのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
AurJson
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:パッケージ開発]] [[en:AurJson]] {{Related articles start}} {{Related|公式リポジトリウェブインターフェイス}} {{Related articles end}} '''AurJson''' インターフェイスは [[AUR]] の軽量リモートインターフェイスです。http の GET クエリでリクエストすることで、[http://www.json.org/ json] データとしてレスポンスを得ることができます。 == API の使用方法 == [https://aur.archlinux.org/rpc.php RPC インターフェイス] には4つのクエリタイプがあります: * search * msearch * info * multiinfo 各メソッドには以下の HTTP GET 構文でアクセスする必要があります: type=methodname&arg=data '''''methodname''''' は使用するメソッドの名前に、'''''data''''' はコールの引数に置き換えて下さい。 データは json 形式で返ってきます。 === クエリタイプ === 上述したように、4つのクエリタイプが存在します: * search * msearch * info * multiinfo ==== search ==== '''''search''''' タイプのクエリにはパッケージ検索を行う文字列を指定します。返ってくるタイプは '''''error''''' と '''''search''''' です。 例: <nowiki>https://aur.archlinux.org/rpc.php?type=search&arg=foobar</nowiki> 上記のクエリのタイプは '''''search''''' で検索引数は "foobar" です。 ==== msearch ==== '''''msearch''''' タイプのクエリにはメンテナの名前で検索する文字列を指定します。返答タイプは '''''error''''' と '''''msearch''''' です。 例: <nowiki>https://aur.archlinux.org/rpc.php?type=msearch&arg=cactus</nowiki> 上記のクエリのタイプは '''''msearch''''' で検索引数は "cactus" です。 ==== info ==== '''''info''''' タイプのクエリには文字列あるいは数値を指定します。数値の場合、既存の packageID と完全一致する必要があり、一致しなければ '''''error''''' タイプが返ってきます。文字列の場合、既存の packageName と完全一致する必要があり、一致しない場合 '''''error''''' タイプが返ってきます。 例: <nowiki>https://aur.archlinux.org/rpc.php?type=info&arg=1123</nowiki> <nowiki>https://aur.archlinux.org/rpc.php?type=info&arg=foobar</nowiki> 上記の例はどちらも '''''info''''' タイプのクエリです。前者のクエリは数値を指定しており、後者は packageName 引数を使っています。packageID 1123 が packageName foobar に対応していた場合、上記のクエリはどちらも foobar パッケージの詳細を返します。 ==== multiinfo ==== 現実的には info リクエストを大量に行う必要が出てくることもあるでしょう。AUR では一回のリクエストで複数のパッケージを処理することができます。 例: <nowiki>https://aur.archlinux.org/rpc.php?type=multiinfo&arg[]=cups-xerox&arg[]=cups-mc2430dl&arg[]=10673</nowiki> === 返り値タイプ === 返り値は5つあるタイプのどれかになります。かならずタイプを返すので、操作の結果がエラーだったかどうか判断することができます。 返り値のペイロードは以下の形式になっています: {"type":ReturnType,"results":ReturnData} ReturnType は文字列で、以下のうちのどれかです: * error * search * msearch * info * multiinfo ReturnData のタイプはクエリタイプによります: * ReturnType が '''''error''''' なら ReturnData は文字列です。 * ReturnType が '''''search''''' なら ReturnData は辞書オブジェクトの配列です。 * ReturnType が '''''msearch''''' なら ReturnData は辞書オブジェクトの配列です。 * ReturnType が '''''info''''' なら ReturnData は辞書オブジェクトです。 * ReturnType が '''''multiinfo''''' なら ReturnData は辞書オブジェクトの配列です。 ==== error ==== error タイプはエラーのレスポンス文字列を返り値に含みます。エラーレスポンスは '''''search''''' と '''''info''''' クエリタイプのどちらかで返ってきます。 ReturnType '''''error''''' の例: {"type":"error","results":"No results found"} ==== search ==== search タイプは search リクエストから返される結果です。検索の結果は、info リクエストと同じです。info セクションを見てください。 ReturnType '''''search''''' の例: {"type":"search","results":[{"Name":"pam_abl","ID":1995, ...}]} ==== msearch ==== msearch タイプは msearch リクエストから返される結果です。検索の結果は、info リクエストと同じです。info セクションを見てください。 ReturnType '''''msearch''''' の例: {"type":"msearch","results":[{"Name":"pam_abl","ID":1995, ...}]} ==== info ==== info タイプは info リクエストから返される結果です。検索でこのタイプが返ってきたら検索のレスポンスが検索データかエラーかを判断できます。 ReturnType '''''info''''' の例: <nowiki> { "type": "info", "results": { "URL": "http://pam-abl.deksai.com/" "Description": "Automated blacklisting on repeated failed authentication attempts" "Version": "0.4.3-1" "Name": "pam_abl" "FirstSubmitted": 1125707839 "License": "BSD GPL" "ID": 1995 "OutOfDate": 0 "LastModified": 1336659370 "Maintainer": "redden0t8" "CategoryID": 16 "URLPath": "/packages/pa/pam_abl/pam_abl.tar.gz" "NumVotes": 10 } } </nowiki> ==== multiinfo ==== multiinfo タイプは multiinfo リクエストから返される結果です。リクエストの結果は、info リクエストと同じです。info セクションを見てください。 ReturnType '''''multiinfo''''' の例: {"type":"multiinfo","results":[{"Name":"pam_abl","ID":1995, ...}]} === jsonp === JavaScript のページを作っていて、JSON のコールバックメカニズムが必要な場合、可能です。callback 変数を追加で指定してください。コールバックは基本的に JavaScript のライブラリで処理しますが、以下が例です。 クエリの例: <nowiki>https://aur.archlinux.org/rpc.php?type=search&arg=foobar&callback=jsonp1192244621103</nowiki> 結果: jsonp1192244621103({"type":"error","results":"No results found"}) RPC コールの結果が設定されたパラメータ (上記の場合なら {{Ic|<nowiki>{"type":"error","results":"No results found"}</nowiki>}}) で JavaScript の関数 {{Ic|jsonp1192244621103}} が自動的に呼びだされます。 == サンプル == クエリの例と結果: <nowiki>https://aur-url/rpc.php?type=search&arg=foobar</nowiki> {"type":"error","results":"No results found"} クエリの例と結果: <nowiki>https://aur-url/rpc.php?type=search&arg=pam_abl</nowiki> {"type":"search","results":[{"Name":"pam_abl","ID":1995}]} クエリの例と結果: <nowiki>https://aur-url/rpc.php?type=info&arg=pam_abl</nowiki> { "type": "info", "results": { "Description": "Provides auto blacklisting of hosts and users responsible for repeated failed authentication attempts", "ID": 1995, "License": "", "Name": "pam_abl", "NumVotes": 4, "OutOfDate": 0, "URL": "<nowiki>http://www.hexten.net/pam_abl</nowiki>", "URLPath": "/packages/pam_abl/pam_abl.tar.gz", "Version": "0.2.3-1" } } == リファレンスクライアント == 時と場合によっては例があったほうが物事を理解しやすいものです。リファレンス実装 (jQuery, python, ruby) が次の url にあります: https://github.com/cactus/random/tree/master/aurjson_examples == 関連するコード == 非公式の [http://xyne.archlinux.ca/projects/python3-aur/ python3-aur] には AUR のリモート JSON インターフェイスなど AUR のサービスを使用するための Python 3 モジュールが入っています。パッケージは [http://xyne.archlinux.ca/repos/ Xyne のリポジトリ] や AUR の {{AUR|python3-aur}} パッケージでインストールできます。
AurJson
に戻る。
検索
検索
AurJsonのソースを表示
話題を追加