cakephpでシンプルなAPIのテンプレートをつくってみた

cakephpでも簡単にできると聞いてやってみました

RESTAPIについてよくわからなかったので勉強がてら

CakeCookBookを参考にして簡単なAPIのテンプレートを作ってみました。

参考に掲載されているようにとっても簡単でした。

いろいろアクションを増やすとなると、Routeの設定とかを色々触らないとダメな感じだとは思います。

参考URLとの変更点はAppContorllerでJsonしか返さないような仕様に変更しています。

(各Controllerで設定するのも面倒なので)

とりあえず、バックエンドをcakephpでAPI作るときとかに重宝するかもしれません。

参考URL (book.cakephp.org)

リポジトリ (github)

早速使ってみよう

git cloneをしたあとはいつものごとく、

composer installして、あとにビルトインサーバでサーバを起動してみましょう。

1
2
composer.phar install
Console/cake server -p 9999

テーブルはこんなかんじなので、SQL文にして置いておきます。

1
2
3
4
5
6
7
8
CREATE TABLE `posts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL DEFAULT '',
  `body` text NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

サーバーを起動した後に、テストとしてcurlでTerminalから投げてみましょう。

curlが入ってない人はhomebrewとかでインストールしておいてください。

1
2
3
4
5
一覧表示: curl http://localhost:9999/posts
個別表示: curl http://localhost:9999/posts
追加: curl http://localhost:9999/posts -X POST -d "title=test_api" -d "body=hello"
編集: curl http://localhost:9999/posts/1 -X POST -d "title=api" -d "body=api”
削除: curl http://localhost:9999/posts/1 -X DELETE

こんなかんじですかね。

本当はエラーコードとかをしっかり管理して返さないといけないのでしょうが、

どういった規則でどのエラーを返すべきなのかまだちゃんとわからないので、

つぎにしっかり使いはじめる時に頑張ります。