Submit Search
Upload
REACT & WEB API
•
1 like
•
840 views
Shigeru Kondoh
Follow
React と Web API の簡単な紹介
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
React入門-JSONを取得して表示する
React入門-JSONを取得して表示する
regret raym
React+TypeScriptもいいぞ
React+TypeScriptもいいぞ
Mitsuru Ogawa
React Native GUIDE
React Native GUIDE
dcubeio
REST with Spring Boot #jqfk
REST with Spring Boot #jqfk
Toshiaki Maki
chat bot framework for Java8
chat bot framework for Java8
masahitojp
翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門
Makoto Chiba
scala-kaigi1-sbt
scala-kaigi1-sbt
Kenji Yoshida
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
Recommended
React入門-JSONを取得して表示する
React入門-JSONを取得して表示する
regret raym
React+TypeScriptもいいぞ
React+TypeScriptもいいぞ
Mitsuru Ogawa
React Native GUIDE
React Native GUIDE
dcubeio
REST with Spring Boot #jqfk
REST with Spring Boot #jqfk
Toshiaki Maki
chat bot framework for Java8
chat bot framework for Java8
masahitojp
翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門
Makoto Chiba
scala-kaigi1-sbt
scala-kaigi1-sbt
Kenji Yoshida
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
WKWebViewとUIWebView
WKWebViewとUIWebView
Yuki Hirai
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
Yuta Matsumura
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
Async Enhancement
Async Enhancement
kamiyam .
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
let UIWebView as WKWebView
let UIWebView as WKWebView
Taketo Sano
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
Toshiaki Maki
20141129-dotNet2015
20141129-dotNet2015
Takayoshi Tanaka
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
Kiyotaka Oku
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
ksimoji
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
Gradle handson
Gradle handson
Nemoto Yusuke
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
react_rails
react_rails
Shigeru Kondoh
React + Reduxで作る対話AI
React + Reduxで作る対話AI
Kentaro Tada
More Related Content
What's hot
Laravel5を使って開発してみた
Laravel5を使って開発してみた
Takeo Noda
WKWebViewとUIWebView
WKWebViewとUIWebView
Yuki Hirai
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
Yuta Matsumura
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
laravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
Async Enhancement
Async Enhancement
kamiyam .
Gradle布教活動
Gradle布教活動
Nemoto Yusuke
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
let UIWebView as WKWebView
let UIWebView as WKWebView
Taketo Sano
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
Toshiaki Maki
20141129-dotNet2015
20141129-dotNet2015
Takayoshi Tanaka
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
Kiyotaka Oku
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
Yuji Kubota
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
ksimoji
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
Gradle handson
Gradle handson
Nemoto Yusuke
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
What's hot
(20)
Laravel5を使って開発してみた
Laravel5を使って開発してみた
WKWebViewとUIWebView
WKWebViewとUIWebView
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
laravel x モバイルアプリ
laravel x モバイルアプリ
Async Enhancement
Async Enhancement
Gradle布教活動
Gradle布教活動
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
behatエクステンションの作り方
behatエクステンションの作り方
let UIWebView as WKWebView
let UIWebView as WKWebView
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
20141129-dotNet2015
20141129-dotNet2015
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
Head toward Java 13 and Java 14 #jjug
Head toward Java 13 and Java 14 #jjug
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
Gradle handson
Gradle handson
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Similar to REACT & WEB API
react_rails
react_rails
Shigeru Kondoh
React + Reduxで作る対話AI
React + Reduxで作る対話AI
Kentaro Tada
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
taskie
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
React.jsでサービスを作ってみた話
React.jsでサービスを作ってみた話
GIG inc.
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
react-scriptsはwebpackで何をしているのか
react-scriptsはwebpackで何をしているのか
暁 三宅
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8
NISHIMOTO Keisuke
Active job meets kubernetes
Active job meets kubernetes
Yasutomo Uemori
Scotty を利用した "ゆるふわ" Web サービス作成
Scotty を利用した "ゆるふわ" Web サービス作成
krdlab
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
Ryo RKTM
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
Kenichi Tachibana
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
Let's react
Let's react
YasuhiroSakai3
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
WESEEKWESEEK
AWS SDK for Haskell開発
AWS SDK for Haskell開発
Nomura Yusuke
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SmartNews, Inc.
Scala2.8への移行
Scala2.8への移行
guest5f4320
Similar to REACT & WEB API
(20)
react_rails
react_rails
React + Reduxで作る対話AI
React + Reduxで作る対話AI
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
React.jsでサービスを作ってみた話
React.jsでサービスを作ってみた話
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
react-scriptsはwebpackで何をしているのか
react-scriptsはwebpackで何をしているのか
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8
Active job meets kubernetes
Active job meets kubernetes
Scotty を利用した "ゆるふわ" Web サービス作成
Scotty を利用した "ゆるふわ" Web サービス作成
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Let's react
Let's react
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
Rails×React×TS で作るwebアプリ入門【weseek tech conf #10】
AWS SDK for Haskell開発
AWS SDK for Haskell開発
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
Scala2.8への移行
Scala2.8への移行
REACT & WEB API
1.
REACT & WEB API RUBY舞鶴 26, JUNE, 2016 SHIGERU KONDOU
2.
REACT学び⽅ 書籍 「⼊⾨ React」 O'REILY かなり古い ES6 での書き ⽅が出ていない 現在 DOM 操作は 'react-dom' に分かれ ている チュートリアル とにかく書きまくる
3.
おすすめ構成 ES6 Webpack Webpack-dev-server
4.
構築⽅法 Webpack や Webpack-dev-server の設定が⾯倒なので boilerplate を探すと良い。 例) react-es6-webpack-boilerplate $ git clone git@github.com:vasanthk/react-es6-webpack-boilerplate.git $ cd react-es6-webpack-boilerplate $ npm i $ npm start
5.
簡単なサンプルを作る
6.
⽅針 React のチュートリアルは、⼊⼒フォームからの登録 と⼀覧表⽰ができるアプリなので 改造して Rails API サーバに接続できるようにする。 せっかく React 使うので 通信部分も jQuery.ajax でなく fetch を使う。
7.
COMMENTBOX.JS export default class CommentBox extends React.Component { constructor(props) { super(props); this.state = {data: []}; this.handleCommentSubmit = this.handleCommentSubmit.bind(this); } componentDidMount() { fetch(this.props.url) .then((response)=>response.json()) .then((json)=>{this.setState({data: json}); }); } handleCommentSubmit(comment) { console.log('handle comment submit', comment); fetch(this.props.url, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(comment) }) 全ソースは https://github.com/cncgl/react-tutorial-client
8.
COOMENTFORM.JS export default class CommentForm extends React.Component { constructor(props) { super(props); this.state = {author: '', text: ''}; this.handleSubmit = this.handleSubmit.bind(this); this.handleAuthorChange = this.handleAuthorChange.bind(this); this.handleTextChange = this.handleTextChange.bind(this); } handleAuthorChange(e) { this.setState({author: e.target.value}); } handleTextChange(e) { this.setState({text: e.target.value}); } handleSubmit(e) { e.preventDefault(); const author = this.state.author.trim(); const text = this.state.text.trim(); if( !text || !author) { return; } this.props.onCommentSubmit({author: author, text: text}); this.setState({author: '', text: ''}); .bind(this) は忘れがちなので注意
9.
COMMENTLIST.JS export default class CommentList extends React.Component { constructor(props) { super(props); } render() { console.log('props', this.props); const commentNodes = this.props.data.map(comment => (<Comment author={comment.author} key={comment.id}> {comment.text} </Comment>)); return (<div className="commentList">{commentNodes}</div>); } } CommentList.propTypes = { data: React.PropTypes.array.isRequired };
10.
簡単なアプリを作る(サーバー 編)
11.
WEB API (RAILS) Rails API モード Rails 5 は標準だが 4以下は rails-api gem を使⽤する。 $ bundle exec rails new . --skip-spring --api $ bundle $ bundle exec rails g scaffold comment author text $ bundle exec rails db:migrate
12.
Active Model をJSON にシリアライズ $ vim Gemfile ... gem 'active_model_serializers' ... $ bundle Comment モデルに対するシリアライザーの作成 $ bundle exec rails g serializer comment
13.
app/serializers/comment_serializer.rb class CommentSerializer < ActiveModel::Serializer attributes :id end ↓ class CommentSerializer < ActiveModel::Serializer attributes :id, :author, :text end app/controllers/application_controller.rb class ApplicationController < ActionController::API end ↓ class ApplicationController < ActionController::API include ActionController::Serialization end
14.
COMMENT_CONTROLLER.RB class CommentsController < ApplicationController before_action :set_comment, only: [:show, :update, :destroy] # GET /comments def index @comments = Comment.all render json: @comments end # GET /comments/1 def show render json: @comment end # POST /comments def create @comment = Comment.new(comment_params) if @comment.save render json: @comment, status: :created, location: @comment else 全ソースは https://github.com/cncgl/react-tutorial-server
15.
参考 Building the Perfect Rails 5 API Only App http://sourcey.com/building-the-prefect-rails-5-api-only- app/ DDoS や API のバージョニング、認証についても書かれ ているので⼀度⾒ておいてほしい
16.
WEB SERVER と API SERVER の構成 同⼀型 1つのサーバーで配信と API サーバーを兼ね備える。 SSR があれば html を書き出す機能と API を返す機能のハ イブリッドになる。
17.
分離型 HTML, JavaScript, asset を静的コンテンツのサーバに置 き、 API サーバーとは分離する。 クロスドメイン制約が あるため、JSONP や CORS で対応する。 SSR がある場合は Rendering Server と API サーバーの構 成にする。
18.
おさらいCORS(CROSS ORIGIN RESOURCE SHARERING) HTTPリクエストヘッダ GET /api HTTP/1.1 Origin: https://trustedsite.com Origin が信⽤できるサイトである場合レスポンスヘッダ に HTTP/1.1 200 OK Access-Control-Allow-Origin: https//trustedsite.com を追加することによりブラウザでのアクセスが可能とな る。
19.
RAILS に RACK-CORS を組み込む $ vim Gemfile ... gem 'rack-cors' ... $ bundle config/application.rb module YourApp class Application < Rails::Application # ... config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', :headers => :any, :methods => [:get, :post, :delete, :put, :patch, :options] end end end end
20.
まとめ React は ES2015 と相性がよくすっきりかける jQuery と⼿を切るため fetch を使っていきたい Rails 5 の API モード等で API サーバは作れる。 Active Model のシリアライズに active_model_serializers が 必要 配信と API を分ける場合は、クロスオリジン対策が必 要 Rails ならば rack-cors が簡単
Download now