DSカードリスト/API

2008-01-19 (土) 23:23:40

カードデータベースの利用について

カードデータベースの派生物として生まれたAPI群です。他のサイトやアプリケーションから、自由にこのデータベースのデータを利用できます。利用する手段としては次のものがあります。

  1. wiki内で利用する
  2. cddb.phpが生成するページを取得/リンクする
    1. カード情報
    2. カードリスト
    3. カード検索結果
  3. cddb.phpが生成するデータをプログラムで利用する
  4. MySQLのデータを利用する

''利用できるデータの文字コードは、指定しない限りすべてUTF-8です。''通常のブラウザで直接アクセスすると文字化けしますが正常な動作です。(ブラウザで設定すれば正しく見ることができます)

Wiki内で利用する

プラグインを利用して、簡単にカードデータへのリンクが作成できます。

カード名を記述しただけで、カードデータを含む個別ページにリンクされるようになりました。

cddb.phpが生成するページを取得/リンクする

カード情報

カード情報のHTML*1は、

http://cardherowiki.reela.net/cddb/cddb.php?mode=view&html=on&css=on&cardnum=hoge
(hoge : 取得するカード番号)
http://cardherowiki.reela.net/cddb/cddb.php?mode=view&html=on&css=on&cardname=hoge
(hoge : URLエンコードされた、取得するカードの名前)

で表示できます。リンクするなり取得するなり、HTMLソースをコピーして貼付けるなり、どうにでもしてください。

このとき、URLの中にある、

&html=on&css=on

を取り去ると、それぞれHTMLのヘッダとフッタ、CSSが出力されなくなります。他のプログラムから動的に取得したい、という方はどうぞ。*2

ちなみに、「カード情報」のみではなく、「カードデータベース」へリンクしたい場合は、リンク中のcddb.phpをindex.phpに変えてください。

(リンク生成Javascript)

JavaScript?を使うと、HTMLの中で簡単にリンクできます。

<script type="text/javascript">
function newCardWin(cardData){
    if(isNaN(cardData)){
        myWin = window.open("http://cardherowiki.reela.net/cddb/cddb.php?mode=view&css=on&html=on&cardname="+encodeURI(cardData) , "cardWin" , "width=400,height=300,location=no,menubar=no,status=no,toolbar=no,resizable=yes");
    }else{
        myWin = window.open("http://cardherowiki.reela.net/cddb/cddb.php?mode=view&css=on&html=on&cardnum="+cardData , "cardWin" , "width=400,height=300,location=no,menubar=no,status=no,toolbar=no,resizable=yes");
    }
}
</script>
<a href="javascript:newCardWin(1)">スパルタス</a>って何の意味があるんだ?
これ以上<a href="javascript:newCardWin('マナトット')">マナトット</a>の下位互換を作っても仕方ないんじゃ...

カードリスト

http://cardherowiki.reela.net/cddb/cddb.php?mode=list&html=on&css=on 

で、全カードのリストが表示できます。後のカード検索の条件を入力すれば、表示するカードリストを絞り込むことができます。カード名からのリンクは今のところindex.phpに貼ってありますが、要望があれば変更できるようにします。

例:全カードリスト レア度が6以上のカードリスト

カード検索

Comming Soon..

cddb.phpが生成するデータを利用する

今のところ、phpで利用できるserializeされたデータのみ対応しています。*3他の言語で利用したい(ex. javascriptのArray形式で、など)という要望があればコメント欄へどうぞ。

http://cardherowiki.reela.net/cddb/cddb.php?mode=getdata&cardnum=hoge<br>
(hoge : 取得するカード番号)

unserialize()に通すと通常の変数として扱えます。データの取得はスクリプトの実行ごとに行っても、埋め込むかたちで利用してもかまいません。データ形式は実装に合わせて公開します。

MySQLのデータを利用する

データベースが整備されしだい追加します。(APIではありませんが…)

利用できる機能拡張

  • &jslink=on を追加すると、リスト表示などのカード名リンクがjavascript:newCardWin?()で指定されます。
  • &urlencode=on を追加すると、全体がURLエンコードされます。(SafariでGetResponseText?を使うときの文字化け対策です。)

API利用のヒント/注意点

  • このAPIは、カードヒーローに関する攻略や解説、戦略を、より簡潔に分かりやすく記述できるように工夫しています。要望などがあれば気軽にどうぞ。
  • 頻繁なアクセスが必要な際は、スクリプトに埋め込むか自分のサーバのデータベースを利用してください。

*1 実はXHTMLではありません。XHTMLにすればXMLとしても利用できるので、要望があれば変更します。
*2 カードデータベースのSearchではこれを利用しています。
*3 まだ実装していません。