SlideShare a Scribd company logo
Cakephpで作る
シンプルAPIサーバ
 iphoneアプリ「Petap」の例




    2012/10/12 第4回php関西
自己紹介
横田 英二(@papettoTV)

Cakephp歴4年

最近は、Titanium mobileでアプリ制作

シラフのLTは初 (参考:http://bit.ly/
web_to_kotatsu)
話す事

APIサーバって(オレオレ)

作った経緯

作り方

できたもの
APIサーバ

xmlとかjsonとか返す

RESTFUL とかよく分かってない

cakephpにAPI用機能はあるらしい(最近知り
ました
※cakephp1.3




html返すところをjson返すように変えればいいはず!
作り方
app_controller.php

view

app_controller.php
app_controller.php
(1)
var $helpers = array('Javascript');

(2)
function beforeFilter() {
   parent::beforeFilter();

    ・・・(なんだかんだ共通処理)・・・


    header("Content-Type: application/json; charset: utf-8");
    $this->layout = "default";
}
view
( 1 ) views/json_html.php

     <?php
        echo $javascript->object($data);
     ?>




( 2 ) views/layouts/default_html.php
     <?php
        echo $content_for_layout;
     ?>
app_controller.php
function _response($response=array(),$error=array()){

      $data = array();
      $data["error"] = $error;
      $data["response"] = $response;
      $data["server_time"] = $_SERVER["REQUEST_TIME"];

      $this->set("data",$data);

      $this->render("/json");
      return;
}
各controller.php

$this->set(“abc”,$abc);

→ $response[“abc”] = $abc;

$this->render() を$this->_response($response,
$error)にどんどん置き換え
PetapAPIサーバできあがり
       ペット写真を投稿

       気に入った写真には「Kawaii」



      http://petap.jp
ご清聴ありがとうございました
おまけ
実際に叩いてみる
http://api.petap.jp/photos/lists

http://api.petap.jp/users/profile_img/1

More Related Content

What's hot

laravel-env-checkの紹介(old)
laravel-env-checkの紹介(old)laravel-env-checkの紹介(old)
laravel-env-checkの紹介(old)
Manabu Matsui
 
はじめてのPHP
はじめてのPHPはじめてのPHP
はじめてのPHPGo Tanaka
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
shirou wakayama
 
最近のRails開発のはなし
最近のRails開発のはなし最近のRails開発のはなし
最近のRails開発のはなしYoichi Toyota
 
Garageを触ってみた
Garageを触ってみたGarageを触ってみた
Garageを触ってみたYoichi Toyota
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
Shohei Okada
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA ONLINE, Inc.
 
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)noldor
 
メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)Ashitaba YOSHIOKA
 
あらためてPHP5.3
あらためてPHP5.3あらためてPHP5.3
あらためてPHP5.3
Masashi Shinbara
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
y-uti
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
Daiki Hayakawa
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
Kenichi Mukai
 
Reflexの紹介
Reflexの紹介Reflexの紹介
Reflexの紹介Rie Nakau
 
New Generation Build System "Fly"
New Generation Build System "Fly"New Generation Build System "Fly"
New Generation Build System "Fly"
deepblue will
 

What's hot (20)

laravel-env-checkの紹介(old)
laravel-env-checkの紹介(old)laravel-env-checkの紹介(old)
laravel-env-checkの紹介(old)
 
はじめてのPHP
はじめてのPHPはじめてのPHP
はじめてのPHP
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
最近のRails開発のはなし
最近のRails開発のはなし最近のRails開発のはなし
最近のRails開発のはなし
 
Garageを触ってみた
Garageを触ってみたGarageを触ってみた
Garageを触ってみた
 
Haikara
HaikaraHaikara
Haikara
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
 
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)メタプログラミングRuby勉強会#7(fluentプラグイン)
メタプログラミングRuby勉強会#7(fluentプラグイン)
 
あらためてPHP5.3
あらためてPHP5.3あらためてPHP5.3
あらためてPHP5.3
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
Reflexの紹介
Reflexの紹介Reflexの紹介
Reflexの紹介
 
New Generation Build System "Fly"
New Generation Build System "Fly"New Generation Build System "Fly"
New Generation Build System "Fly"
 

Viewers also liked

自動テストへの道のり
自動テストへの道のり自動テストへの道のり
自動テストへの道のりEiji Yokota
 
Phpmatsuri2012 lt
Phpmatsuri2012 ltPhpmatsuri2012 lt
Phpmatsuri2012 lt
Eiji Yokota
 
Node-REDの紹介
Node-REDの紹介Node-REDの紹介
Node-REDの紹介
Eiji Yokota
 
Tukkomimura #twtr_hack
Tukkomimura #twtr_hackTukkomimura #twtr_hack
Tukkomimura #twtr_hackEiji Yokota
 
筋トレ大事
筋トレ大事筋トレ大事
筋トレ大事
Eiji Yokota
 
動かしながら学ぶMQTT
動かしながら学ぶMQTT動かしながら学ぶMQTT
動かしながら学ぶMQTT
Eiji Yokota
 

Viewers also liked (7)

自動テストへの道のり
自動テストへの道のり自動テストへの道のり
自動テストへの道のり
 
Phpmatsuri2012 lt
Phpmatsuri2012 ltPhpmatsuri2012 lt
Phpmatsuri2012 lt
 
Node-REDの紹介
Node-REDの紹介Node-REDの紹介
Node-REDの紹介
 
Tukkomimura #twtr_hack
Tukkomimura #twtr_hackTukkomimura #twtr_hack
Tukkomimura #twtr_hack
 
筋トレ大事
筋トレ大事筋トレ大事
筋トレ大事
 
web_to_kotatsu
web_to_kotatsuweb_to_kotatsu
web_to_kotatsu
 
動かしながら学ぶMQTT
動かしながら学ぶMQTT動かしながら学ぶMQTT
動かしながら学ぶMQTT
 

Similar to Cakephp api

知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
 
Geolocation gurunavi
Geolocation gurunaviGeolocation gurunavi
Geolocation gurunaviJun Chiba
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota
 
Array twitter
Array twitterArray twitter
Array twitterJun Chiba
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
 
test
testtest
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
Taisuke Fukuno
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3
ichikaway
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5ichikaway
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
Akio Ishida
 
Array twitter2
Array twitter2Array twitter2
Array twitter2Jun Chiba
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
 
Cubby 2006-08-23
Cubby 2006-08-23Cubby 2006-08-23
Cubby 2006-08-23
Agata Toshikata
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
Sotaro Omura
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
 

Similar to Cakephp api (20)

知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
 
Geolocation gurunavi
Geolocation gurunaviGeolocation gurunavi
Geolocation gurunavi
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
 
Array twitter
Array twitterArray twitter
Array twitter
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
 
test
testtest
test
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3
 
Cakephp tokyo5
Cakephp tokyo5Cakephp tokyo5
Cakephp tokyo5
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
Array twitter2
Array twitter2Array twitter2
Array twitter2
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
 
Cubby 2006-08-23
Cubby 2006-08-23Cubby 2006-08-23
Cubby 2006-08-23
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 

More from Eiji Yokota

Lecture for middle_students
Lecture for middle_studentsLecture for middle_students
Lecture for middle_students
Eiji Yokota
 
生と死について
生と死について生と死について
生と死について
Eiji Yokota
 
webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡
Eiji Yokota
 
Evo2017
Evo2017Evo2017
Evo2017
Eiji Yokota
 
IoTの魅力
IoTの魅力IoTの魅力
IoTの魅力
Eiji Yokota
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけ
Eiji Yokota
 
Cakephp plugin for_facebook
Cakephp plugin for_facebookCakephp plugin for_facebook
Cakephp plugin for_facebookEiji Yokota
 

More from Eiji Yokota (7)

Lecture for middle_students
Lecture for middle_studentsLecture for middle_students
Lecture for middle_students
 
生と死について
生と死について生と死について
生と死について
 
webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡
 
Evo2017
Evo2017Evo2017
Evo2017
 
IoTの魅力
IoTの魅力IoTの魅力
IoTの魅力
 
webエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけwebエンジニアがIoTにハマるわけ
webエンジニアがIoTにハマるわけ
 
Cakephp plugin for_facebook
Cakephp plugin for_facebookCakephp plugin for_facebook
Cakephp plugin for_facebook
 

Cakephp api

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n