API プロバイダが犯しがちな 10 の間違い

10 Common Mistakes Made by API Providers – ReadWriteCloudの要訳というか超訳。

1. いつも全部が正しく動作していると仮定する

データベースのエラーやバックエンドの処理遅延などによって API の出力がおかしくならないように、ユーザに提供する前に依存性を確認して、APIがどう動くかを確認すること。開発者(APIのユーザ)は stack traceなどではなく、正規のレスポンスフォーマットでエラーコードなどが返ってくることを期待している。

2. お粗末なコミュニティ管理

開発者を引きつけるには、コミュニケーションを取って彼らの役に立つこと。開発者をパートナーと考えて対応する。

3. API ビジネスプロセスの規模を予測しない

規模が小さいうちは、ガバナンスの必要性は少ないが、API のトランザクションの規模が大きくなると、ファイナンスや法務にとっても重要な問題になってくる。

4. API をウェブサイトと同じドメインに置く

ウェブサイトと API それぞれのスケーラビリティを別個に扱えるように、別のドメインにする(twitter.com と api.twitter.com のように)。

5. 実際の環境でテストしない

もし、ウェブサイトがその API を使っていないなら、API を使ったサンプルアプリケーションをいくつか作ってみること。そうすることによって、API で取得できるデータの内容(組み合わせ)が適切かどうかを知る事ができる。API を使ってあなたのウェブサイトを再現できないとしたら、その API は修正する必要がある。

6. 悪質な挙動を想定しない

意図的なもの (頻繁なリクエスト、渡される JSON や XML データによる攻撃、SQL インジェクションなどのテクニック)や、スケーラビリティに関係するものを考慮して設計する。

7. ブラックボックステストをしない

アップデート時にはウェブサーバの設定変更等も行う事があるので、ユニットテストだけではなく end-to-end のブラックボックステストも行うこと。

8. API をコアビジネスと認識しない

成功したメディア、オンラインショップ、ウェブ関係の会社は、しばしばそのトラッフィックの 50% 以上が API 経由になっている。従って API を製品の 1 つとして扱うこと。

9. API について役員レベルのマネジメントを行わない

他の新規プロジェクト、ビジネスや技術と同じように (API についても) 理解と明文化されたゴールや評価基準などを持ち、各部署レベルの目標に落とし込んでいく必要がある。

10. エラーを tunneling する

よくあるのが、エラーなのにレスポンスコード 200 OK で返したり、すべてのリクエストを GET, POST で処理したり (PUT, DELETE を使わない)、ユーザに content-type を指定させない、など。

API プロバイダが犯しがちな 10 の間違い

QuickTime Xでの動画変換とサイズ

ネットでダウンロードした動画 (flv) を ipod touch に入れるために変換しようと思ったが、QuickTime で保存する時にどれがいいのか分からなかったので、いろいろなサイズで出力して試した。

元の動画 (FLV, HD, 37分)

  • フォーマット: TrueMotion VP6 (Perian), 1280 x 720, Millions, MPEG Layer 3, Stereo, 44.100 kHz
  • FPS: 23.98
  • データ容量: 266.4MB
  • データレート: 943.14キロビット/秒

720p (mov)

  • フォーマット: H.264, 1280 x 720, 約 1670 万色, AAC, 2 チャンネル, 44100 Hz
  • FPS: 23.98
  • データ容量: 871MB
  • データレート: 3087.67キロビット/秒

Apple TV (m4v)

  • フォーマット: H.264, 1280 x 720, 約 1670 万色, AAC, 2 チャンネル, 44100 Hz
  • FPS: 23.98
  • データ容量: 794.2MB
  • データレート: 2814.16キロビット/秒

iPod (m4v)

  • フォーマット: H.264, 640 x 360, 約 1670 万色, AAC, 2 チャンネル, 44100 Hz
  • FPS: 23.98
  • データ容量: 357.6MB
  • データレート: 1262.63キロビット/秒

480p (mov)

  • フォーマット: H.264, 640 x 360, 約 1670 万色, AAC, 2 チャンネル, 44100 Hz
  • FPS: 23.98
  • データ容量: 314.1MB
  • データレート: 1106.41キロビット/秒

iPhone (m4v)

  • フォーマット: H.264, 480 x 270, 約 1670 万色, AAC, 2 チャンネル, 44100 Hz
  • FPS: 23.98
  • データ容量: 222.5MB
  • データレート: 781.75キロビット/秒

iPhone (セルラー) (3gp)

  • フォーマット: H.264, 176 x 99, 約 1670 万色, AAC, 1 チャンネル, 16000 Hz
  • FPS: 15
  • データ容量: 23.5MB
  • データレート: 81.68キロビット/秒

実際に iPod touch (4g) に入れて見たら、iPhone (セルラー) は論外として、iPhone がよく見るとほんの少しぼやけた感じがするかなあ、という程度で、後は区別がつかなかった。ので、iPod touch で見る動画は 480p あたりに変換したら良さそうだ。

QuickTime Xでの動画変換とサイズ