SlideShare a Scribd company logo
1 of 31
Download to read offline
request-specを利用して
いい感じにモックデータを作って
フロントエンド開発を楽にしたい!
@joe-re
twitter: @joe_re

github: @joe-re
- 名前: じょー
- freeeという会社で働いています
- つい最近までクラウド会計やってました
- 今はクラウド給与やってます
昨今のフロントエンド開発
SPAの台頭
WebAPI全盛期
増える学習コスト
はっきりするサーバサイドと
クライアントサイドの境界線
サーバ側は
REST APIを提供してくれ
そっから先は俺に任せとけ
(最高のユーザ体験を
提供してやんよ!)
ともすれば分業
(するかどうかは現場の
状況や人によるけど)
サーバレスでも
クライアントサイドは動く
そんな状況において
フロントエンド開発を助ける
automock というGemを作りました
• https://github.com/joe-re/automock
Inspired by autodoc!
https://github.com/r7kamura/autodoc
提供する機能
• サーバサイドのrequest-specからレスポンスを
モック用のデータとして抽出する
• 抽出したデータを返却するプロキシーを起動

(サーバサイドのレスポンスを奪い取る)
• モックデータを適用するかどうかはWebViewで

操作可能
 デモ
想定しているユースケース
• サーバのREST APIはもうできてて、

クライアントも作りたいんだけど、

サーバ側のデータ作るの面倒だなぁー
• 特定のリクエストの時に、

クライアントサイドがどう動くか確かめたい
なー
それ、automockを使えば
ボタンぽちぽちするだけで
できますよ(どや)
※ただしテストちゃんと書いている場合に限る
既存のモックサーバツールと
比べた時のメリット
実装とモックデータが

乖離しない!!
モックデータの

メンテナンスの必要なし!!
テストを書く

モチベーションの向上!!
まだまだ全然ダメな点
• request-specから抽出したデータを、少しだけ
変えたい場合もあるよね?
• ファイル内容WebView上で確認できないの

不便じゃね?
• 同じAPI Pathの違うレスポンスのデータは

どうするの?
すみません、

近日中にどうにかします
(時間があれば)
jsの実装の話
使ったFWとかライブラリとか
• フロント

gulp, browserify, babel6, react, redux
• サーバ

express, http-proxy, sequelize, babel6
• テスト

mocka, supertest, power-assert
ノンブロッキングIO、
Rails脳で挑むと

かなりのストレス
例えばこんなコード
うむ、分からん
時代はasync/awaitだ!
一気に分かりやすくなった!
٩( ‘ω’ )‫و‬
おわり

More Related Content

What's hot

第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情Kazuhiro Serizawa
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うことKazuhiro Serizawa
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺Yusuke Wada
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてHirata Tomoko
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
High Performance Gulp
High Performance GulpHigh Performance Gulp
High Performance GulpKeisuke Imura
 
実践 大都会式 プロトタイピング&フロントエンド 2014
実践 大都会式 プロトタイピング&フロントエンド 2014実践 大都会式 プロトタイピング&フロントエンド 2014
実践 大都会式 プロトタイピング&フロントエンド 2014Masayuki Maekawa
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスYoji Shidara
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
PWAをWebサービスに導入した話
PWAをWebサービスに導入した話PWAをWebサービスに導入した話
PWAをWebサービスに導入した話dobby618
 
Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Kenichi Murahashi
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例Naoto Koshikawa
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Takuya Mukohira
 

What's hot (20)

片手間JS on Rails
片手間JS on Rails片手間JS on Rails
片手間JS on Rails
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
すこやかRails
すこやかRailsすこやかRails
すこやかRails
 
BuriKaigi2018
BuriKaigi2018BuriKaigi2018
BuriKaigi2018
 
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えてRailsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
High Performance Gulp
High Performance GulpHigh Performance Gulp
High Performance Gulp
 
実践 大都会式 プロトタイピング&フロントエンド 2014
実践 大都会式 プロトタイピング&フロントエンド 2014実践 大都会式 プロトタイピング&フロントエンド 2014
実践 大都会式 プロトタイピング&フロントエンド 2014
 
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
 
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービスRuby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
 
RSpecしぐさ
RSpecしぐさRSpecしぐさ
RSpecしぐさ
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
PWAをWebサービスに導入した話
PWAをWebサービスに導入した話PWAをWebサービスに導入した話
PWAをWebサービスに導入した話
 
Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話Rubyコミッタのいる開発いい話
Rubyコミッタのいる開発いい話
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
 
Walking front end
Walking front endWalking front end
Walking front end
 

Viewers also liked

PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門Yuzo Iwasaki
 
Dockerfile for Perl development
Dockerfile for Perl developmentDockerfile for Perl development
Dockerfile for Perl developmentYuzo Iwasaki
 
PopZ News-Friday February 5 2016
PopZ News-Friday February 5 2016PopZ News-Friday February 5 2016
PopZ News-Friday February 5 2016Rick Gallagher
 
Asm steel brochure
Asm steel brochure Asm steel brochure
Asm steel brochure Ali Sajid
 
Kebiasaan bernalar
Kebiasaan bernalarKebiasaan bernalar
Kebiasaan bernalargampangmain
 
Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Yuzo Iwasaki
 
Asm steel brochure
Asm steel brochure Asm steel brochure
Asm steel brochure Ali Sajid
 
PopZ News-Friday February 12 2016
PopZ News-Friday February 12 2016PopZ News-Friday February 12 2016
PopZ News-Friday February 12 2016Rick Gallagher
 
Personlig Effektivitet afsnit 1
Personlig Effektivitet afsnit 1Personlig Effektivitet afsnit 1
Personlig Effektivitet afsnit 1Lasse Karlberg
 
Module 00 Course Introduction
Module 00 Course IntroductionModule 00 Course Introduction
Module 00 Course IntroductionIPAC-IAPC
 
Bookazine's GNOV Bestseller List (February 5 2016)
Bookazine's GNOV Bestseller List (February 5 2016)Bookazine's GNOV Bestseller List (February 5 2016)
Bookazine's GNOV Bestseller List (February 5 2016)Rick Gallagher
 
Podsumowanie 1 semestru w klasie 0b
Podsumowanie 1 semestru w klasie 0bPodsumowanie 1 semestru w klasie 0b
Podsumowanie 1 semestru w klasie 0bubuntuszkola
 
Kryssi - Talvitreeni 29032015
Kryssi - Talvitreeni 29032015Kryssi - Talvitreeni 29032015
Kryssi - Talvitreeni 29032015Oliver Kuustonen
 
Module 11 Engagement and Divide
Module 11 Engagement and DivideModule 11 Engagement and Divide
Module 11 Engagement and DivideIPAC-IAPC
 
BookazineBits Thursday February 4 2016
BookazineBits Thursday February 4 2016BookazineBits Thursday February 4 2016
BookazineBits Thursday February 4 2016Rick Gallagher
 
Module 07 Leadership
Module 07 LeadershipModule 07 Leadership
Module 07 LeadershipIPAC-IAPC
 

Viewers also liked (20)

PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門PerlエンジニアのためのCodeIgniter入門
PerlエンジニアのためのCodeIgniter入門
 
Dockerfile for Perl development
Dockerfile for Perl developmentDockerfile for Perl development
Dockerfile for Perl development
 
jcfresume2015MFG
jcfresume2015MFGjcfresume2015MFG
jcfresume2015MFG
 
PopZ News-Friday February 5 2016
PopZ News-Friday February 5 2016PopZ News-Friday February 5 2016
PopZ News-Friday February 5 2016
 
Asm steel brochure
Asm steel brochure Asm steel brochure
Asm steel brochure
 
Kebiasaan bernalar
Kebiasaan bernalarKebiasaan bernalar
Kebiasaan bernalar
 
Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話
 
Asm steel brochure
Asm steel brochure Asm steel brochure
Asm steel brochure
 
PopZ News-Friday February 12 2016
PopZ News-Friday February 12 2016PopZ News-Friday February 12 2016
PopZ News-Friday February 12 2016
 
Personlig Effektivitet afsnit 1
Personlig Effektivitet afsnit 1Personlig Effektivitet afsnit 1
Personlig Effektivitet afsnit 1
 
Module 00 Course Introduction
Module 00 Course IntroductionModule 00 Course Introduction
Module 00 Course Introduction
 
Bookazine's GNOV Bestseller List (February 5 2016)
Bookazine's GNOV Bestseller List (February 5 2016)Bookazine's GNOV Bestseller List (February 5 2016)
Bookazine's GNOV Bestseller List (February 5 2016)
 
Podsumowanie 1 semestru w klasie 0b
Podsumowanie 1 semestru w klasie 0bPodsumowanie 1 semestru w klasie 0b
Podsumowanie 1 semestru w klasie 0b
 
Kryssi - Talvitreeni 29032015
Kryssi - Talvitreeni 29032015Kryssi - Talvitreeni 29032015
Kryssi - Talvitreeni 29032015
 
Module 11 Engagement and Divide
Module 11 Engagement and DivideModule 11 Engagement and Divide
Module 11 Engagement and Divide
 
Rails2&Me
Rails2&MeRails2&Me
Rails2&Me
 
Final Document
Final DocumentFinal Document
Final Document
 
IC_PREDSTAVITEV
IC_PREDSTAVITEVIC_PREDSTAVITEV
IC_PREDSTAVITEV
 
BookazineBits Thursday February 4 2016
BookazineBits Thursday February 4 2016BookazineBits Thursday February 4 2016
BookazineBits Thursday February 4 2016
 
Module 07 Leadership
Module 07 LeadershipModule 07 Leadership
Module 07 Leadership
 

Similar to request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!

楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付SpaTakahiro Tsuchiya
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみKazunari Hara
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会guestadcb01
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会seiryo
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform拓将 平林
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
JS非同期処理のいま
JS非同期処理のいまJS非同期処理のいま
JS非同期処理のいまMasakazu Muraoka
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
Hack On Air - Microsoft APIs
Hack On Air - Microsoft APIsHack On Air - Microsoft APIs
Hack On Air - Microsoft APIsKeiji Kamebuchi
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編Masayuki KaToH
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)y_uuki
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?sasezaki
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIWataru MIYAGUNI
 

Similar to request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい! (20)

楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa
 
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
JS非同期処理のいま
JS非同期処理のいまJS非同期処理のいま
JS非同期処理のいま
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
Hack On Air - Microsoft APIs
Hack On Air - Microsoft APIsHack On Air - Microsoft APIs
Hack On Air - Microsoft APIs
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
 
Platform.html5
Platform.html5Platform.html5
Platform.html5
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
SQLを書くだけでAPIが作れる基盤
SQLを書くだけでAPIが作れる基盤SQLを書くだけでAPIが作れる基盤
SQLを書くだけでAPIが作れる基盤
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 

request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!