いままでAPIを使ってテキトーなサイトを作ってみたのだが、このあたりでWebAPIを利用するにあたって考えた方がよさそーなことを自分で忘れないよーにまとめてみた(基本的に自分用メモ)。基本的にphpでWebアプリケーションを構築することを想定しているっす。
- 準備段階
- APIの利用条件・利用範囲の確認
- APIで提供される仕様の確認(どのようなqueryを投げればどのような結果が返ってくるか)
- 利用するAPIのサーバ負荷が高いかどうか?(Webサーバ側でキャッシュしたりすると吉)
- 文字コードを統一する(りょーちは基本的にUTF-8を利用)
- phpのバージョンや外部モジュールなどのセキュリティホールがないかチェックしておく(特にphp4とphp5で利用できない関数などもあるので注意)
- 設計
- 何かを入力させたりする場合には入力されては困る文字などに制限をかけておく。
- 想定外の文字が入力されることを考慮し htmlspecialchars などでサニタイズする。
- CSSファイルを活用し、HTML出力部分は極力単純に記載する。
- 文字を入力させる部分が1箇所しかない場合にはその部分のテキストエリアをドキュメントをロードする際にfocusしておく。
- 入力する順番にタブで移動できるようにindexをつけておく。
- 可能であれば、入力した結果は次回も選択されるようにGET(またはPOST)した情報を元に入力フォームにセットしておく。
- コーディング
- error_reporting(E_ALL); や error_reporting(E_ALL ^ E_NOTICE); などを利用する
- 定数はdefineする。
- エンドポイントも変更なければdefineしちゃう。
- マジックナンバーを書かない。
- API提供サイトにアクセスできなかった際の処理を作成する。
- 期待した結果が得られなかった場合の処理を作成する。
- 取得結果の文字コードの変換が必要な場合にはデータ取得後、直ぐに変換しておく。
- 外部モジュールを利用する際はモジュールに必要なライブラリをソースのコメントに記載しておく
- プログラムで汎用的に利用できる部分は内部関数化する
- よく使う関数は外部ファイルで作成し、includeする。
- 関数の戻り値を指定し、なるべくvoid()は利用しない。
- メイン関数は極力短くする。
- 正しいHTMLタグを書く(HTML-lintなどを利用する)
- IMGタグにはALT属性を記述する
- ロジックと表示部分はなるべく分ける(関数化すると比較的容易に分かれる)
- このソースは何時作成したものかをコメントに記載しておく
- 参考にしたサイトなどがあればそのサイトもコメントに記載しておく
- 他人が見ても分かるようにキレイなソースを書く(正しくインデントする)
- 極力ブラウザ依存をなくす(動作可能なブラウザを把握しておく)
- その他
- 自分で使ってみて面白いかどーか
- 開発は本サーバでなく、テスト環境で開発する。
- 作成したサイトには利用したAPIについて言及しておく。
何かいろいろ忘れているっぽいが、気が付いたら追加しておこう。