前回はCakePHPでTwitterAPIを使用し、ツイートを取得して画面に表示する方法を紹介しました。
今回は実際にCakePHPで、JSONデータを返却するAPI処理をご紹介いたします。
今回は実際にCakePHPで、JSONデータを返却するAPI処理をご紹介いたします。
/**
* formデータを返却するAPI
*
*/
public function form()
{
// Fromsモデルを読み込む
$this->loadModel('Forms');
// パラメータを受け取る
$params = $this->request->getQuery();
$id = null;
// 特定のパラメータがあればセットしておく
if (isset($params['id']) && $params['id']) {
$id = $params['id'];
}
// 条件に合わせてデータを取得する
if ($id !== null) {
$form_data = $this->Forms->get($id);
} else {
$form_data = $this->Forms->find('all');
}
// 返却データをセットする
$this->set([
'forms' => $form_data,
'_serialize' => ['forms']
]);
}
/**
* API取得テスト
*
*/
public function apiTest()
{
$this->autoRender = false;
$url = 'http://localhost/cake_pjt/api/form';
$data = [];
$option = [
'headers' => [
'Accept' => 'application/json'
]
];
$http = new Client();
$response = $http->get($url, $data, $option);
if ($response->isOk()) {
$content = $response->getJson();
debug($content['forms']);
}
exit;
}
今回はCakePHPを使用して簡単なAPIを作成してみました。
APIの作成と聞くと難しそうに聞こえますが、CakePHPでAPI作成を手助けする処理があらかじめ用意されているので、APIがどんなものか作ってみたいという方でも簡単に実装することができます。
ちなみに、API実行時のPOST・PUT・DELETEも同様に実装すればAPIを動かすことができます。
ただ、その際はApiのコントローラーのCSRFの保護を無効にする必要があるので注意してください。
参考:https://book.cakephp.org/4/ja/controllers/middleware.html
実装するにあたって、公式ドキュメントはとても参考になります。さらに詳細を知りたい場合は、ぜひ公式ドキュメントを参照してみてください。