Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
PHP で REST API
を作った話
@ken880guchi
自己紹介
自己紹介
株式会社 Loco Partners
Kenya Yamaguchi
Twitter: @ken880guhci
Github: Kenya Yamaguchi
宣伝
満足度の高い施設のみを掲載
最低価格の保証(差額返金システム)
より特別なおもてなし
Phpでrest apiを作った話
今日の話
題名に PHP とありますが PHP のコー
ドは全くありません。
REST API 作った体験談になってます。
謝罪
Q. どんな構成?
A. いつもの構成
• EC2 + RDS
• WebServer: Apache
• WAF: CakePHP
作るきっかけ
自社アプリのリニューアル
CakePHP のアクションメソッドで生成し
た値をそのまま使用
アプリエンジニア => ٩(๑`^́๑)۶
作るきっかけ
これをみてくれ
"0": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
意図が伝わらない Key
ツラ。。。 (́._.`)
そもそも、REST API を作ったことない。
そもそも、REST API を作る際に妥当な
WAF ってなんだ。
そもそも、アプリ側にとって扱いやすい構造っ
てどんなものだろう。
作りなおすにあたって
「そもそも」
解らないことだらけ
そもそも、REST API を作ったことがない。
O'Reilly から出版されている Web API: The
Good Parts をまず読む
大手サービスの真似をしてみる
基礎力の向上
地道に 1 つずつ潰していく
そもそも、REST API を作る際に妥当な
WAF ってなんだ。
複数のWAFを使用することで、保守性が悪くなるん
じゃないのか
現在のサービス利用率と自身達の技術力から考えて、
本当に別のWAFを選択することが最適解なのか
CakePHP を引き続き採用
地道に 1 つずつ潰していく
そもそも、アプリ側にとって扱いやすい構造っ
てどんなものだろう。
自社アプリ開発者にヒアリング
出来るだけ要望に答える
アプリをViewとして捉える
地道に 1 つずつ潰していく
思っていたよりも
ずっと面倒臭い
ドキュメントの作成
大事。だけど面倒
仕様の再確認
いままで無かった事もあって、ボリュームがやばい
面倒臭い
既存コードの移植
コントローラーにズラーーーっと並んでいる状態
コピペでドンッ!だと不要なデータとかまた取得し
てしまう。
バグらないよう少しづつ API へ移植
面倒臭い
実装中の確認
過去のリクエスト履歴を残してくれる History 機能
頻繁に使用するリクエストの Collection 機能
Document (軽い説明)も書ける
リクエストの履歴から curl, javascript, objective-
c, java 等など、様々な言語でのリクエスト用のコードを
自動生成してくれる
良いところ、便利なところ
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://qiita.com/api/v2/items");
// 省略
xhr.send(data);
自動生成されたコード
(javascript)
テストはどうした?
そもそもやった?
Phpでrest apiを作った話
Chakram?
ふるまい駆動でテストが書ける
環境構築が簡単
npm install -g chakram
npm install -g mocha
ドキュメントが整っている
どんなところに使用したか
堂々と使ってますと言ったけど
実際は、一部のレスポンスステータスや構造
の確認のみに使用しているだけ
それでも無いより大分捗ります
CakePHP は REST API を作るには大袈
裟すぎたんじゃないかな。
型とか気にするようになったら、静的言語の
方が捗るかと思ったけど、値のフォーマット
と数字から数値程度のキャストならPHPで
も問題なかった。
いざとなったら、ワサッ!とかける PHP は
最高!
業務系アプリって大きな View みたい
作ってみてのまとめ
おまけ
サーバーレスアーキテクチャ
新しいものへの強い期待!
なんか格好良さそう!!
いつかやりたい ...
あこがれ
やってみた!
憧れているだけでは
はじまらない!!
API Gateway + Lambda + ElasticSearch
でFramework は JAWS を採用!
なんか今時!!
どんな構成?
サーバーレスなので自由度は減るが、メンテ
不要なのは魅力的
PHP も良いけど、新しいものへの挑戦も大事
やってみて
Loco Partners では
こんな仲間を募集中です!!
会社のビジョンに共感できる人
課題解決指向の人
技術が好きで堪らない人
採用情報
ご清聴
有難うございました

More Related Content

Phpでrest apiを作った話