SlideShare ist ein Scribd-Unternehmen logo
1 von 13
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
最近の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
 
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話y-uti
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi 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
 

Was ist angesagt? (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"
 

Andere mochten auch

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

Andere mochten auch (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
 

Ähnlich wie 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カンファレンス北海道2012Yusuke 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
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLTaisuke Fukuno
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3ichikaway
 
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 2Akio 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
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみてSotaro Omura
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019Rui Hirokawa
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介sters
 

Ähnlich wie 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
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 

Mehr von Eiji Yokota

Lecture for middle_students
Lecture for middle_studentsLecture for middle_students
Lecture for middle_studentsEiji Yokota
 
生と死について
生と死について生と死について
生と死についてEiji Yokota
 
webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡webサービスにstripeを導入するまでの軌跡
webサービスにstripeを導入するまでの軌跡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
 

Mehr von 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

Hinweis der Redaktion

  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