1. TOPTOP
  2. Webサービス
  3. CakePHP

TwitterAPIのレート制限にかかならいようにつぶやきを一覧を表示させる。CakePHP・MVC(Model-View-Controller)の活用

|

mvc0

先日から、TwitterAPIのレート制限について考えています。TwitterAPIでつぶやき一覧を任意に表示させようとしても、第三者から大量のアクセスが来たときに対処ができないからです。

例えばSearch API(新しいタブで開く)には、15分間に180回というレート制限が存在します。この制限数を超えてアクセスがくると、それ以降の人は、つぶやき一覧を見られないことになります。

mvc1

MVC(Model-View-Controller)の活用

そこで登場するのが、Webフレームワーク(CakePHP)です。Webフレームワークの主たる概念のである、MVC(Model-View-Controller)を活用します。

以降で登場する図は、CakaPHPのドキュメンテーション(新しいタブで開く)を参考にして、MVCの概念図にTwitterAPIを配置しています。

データの書き込み(Controllerからデータベースに挿入)

mvc2

まずユーザーにつぶやき一覧を見てもらうためには、データベースにTwitterAPIからのデータをデータベースに格納する必要があります。Controllerからデータを、直接データベースに挿入するところが特徴的です。

  • a.ControllerからTwitterAPIへjsonデータの呼び出し
  • b.TwitterAPIからControllerへのjsonデータの応答
  • c.Controllerで必要なjsonを取り出し、データベースに挿入

データの書き込み(Modelからデータベースに挿入)

mvc3

こちらもデータの書き込みですが、Controllerから直接ではなく、Modelを介してデータをデータベースに挿入します。

  • a.ControllerからTwitterAPIへjsonデータの呼び出し
  • b.TwitterAPIからControllerへのjsonデータの応答
  • c.ControllerからModelに対して、データ処理の指示
  • d.Modelからデータベースへデータの挿入

データの読み込み

mvc4

こちらは、よくあるMVCの概念図そのままです。①から⑦までの番号順で動作しますが、ユーザーが、直接TwitterAPIにアクセスすることはありません。

データベースまわりの作業について

TwitterAPIにWebフレームワークを用いると、やはりデータベース周辺の作業が多くなります。

  • データをデータベースに書き込む役割について。Controllerで直接するのか?Modelを介して行うか決める
  • データベースの更新について。TwitterAPIにアクセスする頻度
  • データベースの削除について。データを消去する頻度(間隔や量など)
  • クエリ(SQL)文の作成

〔参考サイト〕