Submit Search
Upload
今更Cake2.3でWebAPIを作った話
•
0 likes
•
470 views
R
rittyan
Follow
PHP-BLT#2で発表したスライドです
Read less
Read more
Software
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
スマホフロントエンド最速化手法
スマホフロントエンド最速化手法
zaru sakuraba
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライド
Sawada Makoto
なにか作ったらプレスリリースを出してみよう
なにか作ったらプレスリリースを出してみよう
hideichi saito
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
Tomohiro Yamasaki
5分でわかるPhalconPHP
5分でわかるPhalconPHP
Shohei Tai
アクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったの
真里奈 土岐
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
azuma satoshi
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Masataka Kono
Recommended
スマホフロントエンド最速化手法
スマホフロントエンド最速化手法
zaru sakuraba
AlphabetBootCamp 第1回勉強スライド
AlphabetBootCamp 第1回勉強スライド
Sawada Makoto
なにか作ったらプレスリリースを出してみよう
なにか作ったらプレスリリースを出してみよう
hideichi saito
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
Tomohiro Yamasaki
5分でわかるPhalconPHP
5分でわかるPhalconPHP
Shohei Tai
アクセシブルなブログ開発、 その後どうなったの
アクセシブルなブログ開発、 その後どうなったの
真里奈 土岐
YAPC::Asia 2012 CPANに恩返ししよう
YAPC::Asia 2012 CPANに恩返ししよう
azuma satoshi
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Masataka Kono
もしアジャver2.0
もしアジャver2.0
nekogeruge_987
プログラミング(プログラムの書き方)基礎
プログラミング(プログラムの書き方)基礎
galluda
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
YamaYamamoto
プログラミングってなに?
プログラミングってなに?
Kazuki Saito
5分で詰め込む フロントエンド最適化
5分で詰め込む フロントエンド最適化
Shohei Tai
歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事
Masataka Kono
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
Yoshinori Kobayashi
ググリワードを探す話
ググリワードを探す話
toru ishikawa
ウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返って
Kohki Yamagiwa
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
Asami Abe
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)
Yohei Sato
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
Kakigi Katuyuki
connpass特徴と開発の流れ
connpass特徴と開発の流れ
Ikeda Yosuke
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
Teruhi Goto
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
dcubeio
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
TYamamoto1007
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
Kento Kawakami
More Related Content
What's hot
もしアジャver2.0
もしアジャver2.0
nekogeruge_987
プログラミング(プログラムの書き方)基礎
プログラミング(プログラムの書き方)基礎
galluda
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
YamaYamamoto
プログラミングってなに?
プログラミングってなに?
Kazuki Saito
5分で詰め込む フロントエンド最適化
5分で詰め込む フロントエンド最適化
Shohei Tai
歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事
Masataka Kono
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
Yoshinori Kobayashi
ググリワードを探す話
ググリワードを探す話
toru ishikawa
ウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返って
Kohki Yamagiwa
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
Asami Abe
What's hot
(10)
もしアジャver2.0
もしアジャver2.0
プログラミング(プログラムの書き方)基礎
プログラミング(プログラムの書き方)基礎
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
プログラミングってなに?
プログラミングってなに?
5分で詰め込む フロントエンド最適化
5分で詰め込む フロントエンド最適化
歴史あるWebサービスに携わって2年半の間に起きた事やった事
歴史あるWebサービスに携わって2年半の間に起きた事やった事
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
プログラミングの学習方法 | How To Learn The Programming 14.05.31 WP-D Fes #02 Interviews ...
ググリワードを探す話
ググリワードを探す話
ウェブエンジニアとしての1年目を振り返って
ウェブエンジニアとしての1年目を振り返って
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
Similar to 今更Cake2.3でWebAPIを作った話
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)
Yohei Sato
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
Kakigi Katuyuki
connpass特徴と開発の流れ
connpass特徴と開発の流れ
Ikeda Yosuke
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Masayuki Ishikawa
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
Teruhi Goto
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
dcubeio
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
TYamamoto1007
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
Makoto Kawano
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
Kento Kawakami
knitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくする
imuyaoti
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
Taiji Tsuchiya
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
人気の勉強会を逃さないシステム
人気の勉強会を逃さないシステム
ryonext Shimamoto
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
Yutaka Kato
2017823 pythonを始めよう
2017823 pythonを始めよう
shouta yoshikai
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINE Corporation
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Similar to 今更Cake2.3でWebAPIを作った話
(20)
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
connpass特徴と開発の流れ
connpass特徴と開発の流れ
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
Windowsにpython版prophetを入れようとしてハマった話とちょっとした事例紹介
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
LINEDC新年LT会【LINEで個人開発を始めて1年でLAEになれた話】
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
knitrBootstrapを使ってHTMLレポートをかわいくする
knitrBootstrapを使ってHTMLレポートをかわいくする
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
人気の勉強会を逃さないシステム
人気の勉強会を逃さないシステム
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
2017823 pythonを始めよう
2017823 pythonを始めよう
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
LINEにおける GitHub Enterpriseの活用事例と LINE Notifyについて
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
今更Cake2.3でWebAPIを作った話
1.
PHP BLT #2 @rittyan 今更Cake2.3で WebAPI作った話
2.
人生初LT
3.
自己紹介 NEETを脱出して働き始めてから大体2年弱 最近お仕事でやってること • 見積 • 実装 最近勉強してる言語はOCaml twitter
: @rittyan • 打ち合わせ 受託系の企業で働いてます
4.
半年ぐらい前に WebAPIを作って リリースしました Cake 2.3で
5.
なんでCake2.3だっ て?
6.
大人の事情です
7.
リリースしてから 半年ぐらい経ったので
8.
やってよかったこと 駄目だった事を 話そうと思います
9.
実装するにあたって 参考にしたもの
10.
Web API : The
Good Parts • だいたいこれ読んでおけば よいと思う • 迷った時はGitHubとか TwitterのAPIDocumentを みて、先人達の知恵を学ぶ
11.
駄目だった事
12.
バージョニング
13.
バージョニング • 大規模な改修毎に2、3とあげて小規模な修正には小数点以下であげ ますとかやってしまった • 定期的に大規模改修があればいいけど、大規模改修が頓挫する可能 性も考えるとそういう風にバージョニングの意味をつけないほうが いい •
1.9までいっちゃったらどうすんの?とかある • 整数のが悩まないですむ • if(API_VERSION <= 1.4) とかやってて微妙な気分
14.
エラーコード
15.
エラーコード • データ取得系で何もなかった場合204を返すようにしてしまった • レスポンスに0件とか加えればよかったんじゃ? •
そもそもレスポンスのフォーマットが…(後述) • ちなみに204で返すとブラウザアドオンのAPIClientは中身空にする ので204を返しつつ何かレスポンスを返したい時は確認手段に注意 • 独自エラーコードは実装しなかった(後で危なくなりそうだから)
16.
レスポンス
17.
レスポンス • JSON形式だけど階層にはなってない • user
: {id : 1}とかじゃなくて user_id、user_nameみたいな感じで一 つの階層に存在する形式 • 気づいた時には大人の事情でもうレスポンス形式を変えるには遅す ぎた • アプリ側はつらそう
18.
やってよかったこと
19.
テスト書いた
20.
プルリクベースで コードレビューしながら 進めた
21.
未だに悩んでる事
22.
ページネーション
23.
ページネーション • ページネーション • 一応
limit、offset、時刻形式でページネーションするようにした • けどデータを更新順で並べたりするため、位置が悪いと出てこなく なる • 主キーで絞るのがいいのではないかと思うけど、 そのあたりのベストプラティスが欲しい
24.
統括
25.
統括 • テストは作ろう 未来の自分の助けになる •
知識としてはオライリーの本をベースにインプットしつつ、 最新サービスのDocumentをみて流行りとか動向を押さえておくと よさげ • RESTFulでなくてもいい • 一度アプリ作ってみるとAPIを使う側の気持ちになれてよい • 迷ったらシンプルに、わかりやすくを合言葉に
26.
感想
27.
PHPはもういいや最高!!!
28.
終 ご静聴ありがとうございました
Download now