ちょっと次のアプリの為にこちらでAPIを作成する必要が出てきました。
ので、APIの作成をAWSで行うことにしました。
サーバサイドはPHPかPerlしか書けないし、
frameworkはcakeしか使えないというダメエンジニアの為、
cakeでREST APIを作成する事にいたしました。
その作成手順をご紹介
まず、RESTとはなにか…とは私も良くわかりませんのでググってください。
HTTP通信のGET/POST/PUT/DELETEによって返す内容を変えるって事と理解しています。
ちなみに、cakeのREST APIは
マニュアル»CakePHPによる作業の定石»REST»単純なセットアップ
ここで解説されております。
まずはroutes.phpの設定
Router::mapResources('controller_name'); Router::parseExtensions();この2行をroutes.phpへ追加してください。
指定したcontrollerにメソッドを作成していきますが、
後回しにして、viewから作成しましょう。
まず、views/layouts/json/default.ctp
<?php echo $content_for_layout; ?>layout/json/default.ctpに作成しておりますが、
XMLでAPIを作成したい場合には、layout/xml/default.ctpで作成してください。
次に、view/controller_name/method.ctp
<?php echo json_encode($output); ?>この1行でJSONをエンコードしてくれます。
$outputへはハッシュか配列、またはその組み合わせを渡せば大丈夫です。
最後にcontrollerですが、ここは必要なメソッドだけ作成すれば良いです。
class ControllersController extends AppController { // ... function index(){ $output->error = array( array('code' => '101', 'msg' => 'GET method is not supported'); ); $this->set('output', $output); } }
これで、example.com/controller.json
でアクセスすると、
{"error":[{"code":101,"msg":"GET method is not supported"}]}
というJSONが取得できます。
REST APIその他のメソッドの対応表についてはcakeのcookbookを参考にしてください。
ちなみに、cookbookのurlは後ろに.xmlや.jsonを付けないとアクセス出来ません。
0 件のコメント:
コメントを投稿