Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Hiromasa Tanaka
PDF, PPTX
2,193 views
WordPress REST API とリアクティブプログラミング
WordPress REST API とリアクティブプログラミング - Sacss Special 08
Engineering
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 44
2
/ 44
3
/ 44
4
/ 44
5
/ 44
6
/ 44
7
/ 44
8
/ 44
9
/ 44
10
/ 44
11
/ 44
12
/ 44
13
/ 44
14
/ 44
15
/ 44
16
/ 44
17
/ 44
18
/ 44
19
/ 44
20
/ 44
21
/ 44
22
/ 44
23
/ 44
24
/ 44
25
/ 44
26
/ 44
27
/ 44
28
/ 44
29
/ 44
30
/ 44
31
/ 44
32
/ 44
33
/ 44
34
/ 44
35
/ 44
36
/ 44
37
/ 44
38
/ 44
39
/ 44
40
/ 44
41
/ 44
42
/ 44
43
/ 44
44
/ 44
More Related Content
PDF
WordPress REST API と Vue.js を使ったフロントエンド開発
by
Hiromasa Tanaka
PDF
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
by
Hiromasa Tanaka
PDF
AWS+WordPressでつくるFirefoxアプリ
by
Takayuki Miyauchi
PDF
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
by
Kazue Igarashi
PDF
WebAPIのこれまでとこれから
by
Yohei Yamamoto
PDF
WP-APIを使ってみよう&No PHPテーマという考え方
by
Hidetaka Okamoto
PDF
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
by
Kazue Igarashi
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
by
Akira Inoue
WordPress REST API と Vue.js を使ったフロントエンド開発
by
Hiromasa Tanaka
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
by
Hiromasa Tanaka
AWS+WordPressでつくるFirefoxアプリ
by
Takayuki Miyauchi
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
by
Kazue Igarashi
WebAPIのこれまでとこれから
by
Yohei Yamamoto
WP-APIを使ってみよう&No PHPテーマという考え方
by
Hidetaka Okamoto
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
by
Kazue Igarashi
ASP.NET シングル ページ アプリケーション (SPA) 詳説
by
Akira Inoue
What's hot
PDF
JAWSUG Kansai Simple Workflow Service (SWF)
by
Takuro Sasaki
PDF
CloudSearchによる全文検索 - CM:道 2014/08/01
by
Shuji Watanabe
PDF
「WordPress初心者講座」(2018.3.25) 講義資料01
by
Akihiro Moriyama
PDF
WordCamp Tokyo2016itkaasan
by
松田 千尋
PDF
20150207 amazon elasticache
by
Daiki Mori
PPTX
PHPerだってMicroservicesしたい!
by
Shinichi Takahashi
PDF
RESTful #とは RailsスタイルからRESTを学ぼう
by
Toru Kawamura
PDF
DevLove Kansai AWS
by
Takuro Sasaki
PPTX
はじめてのBluemixでシングルサインオン ~ 希望編!
by
Kazumi OHIRA
PDF
JAWSUG Osaka S3 CloudSearch
by
Takuro Sasaki
PPTX
はじめてのAWS Lambda
by
Masaki Misawa
PDF
2016/05/01 Visual Studio with Cordova
by
miso- soup3
PDF
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
by
takezoe
PDF
5分で分かるmonaca pressproject(草案)
by
Yuki Okamoto
PPT
REST 入門
by
Yohei Yamamoto
PPTX
Kinesis Firehoseを使ってみた
by
Masaki Misawa
PPTX
MongoDBの監視
by
Tetsutaro Watanabe
PDF
Service worker が拓く mobile web の新しいかたち
by
Kinuko Yasuda
PDF
JSON Schema で Web API のスキマを埋めよう
by
VOYAGE GROUP
PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
by
Takuro Sasaki
JAWSUG Kansai Simple Workflow Service (SWF)
by
Takuro Sasaki
CloudSearchによる全文検索 - CM:道 2014/08/01
by
Shuji Watanabe
「WordPress初心者講座」(2018.3.25) 講義資料01
by
Akihiro Moriyama
WordCamp Tokyo2016itkaasan
by
松田 千尋
20150207 amazon elasticache
by
Daiki Mori
PHPerだってMicroservicesしたい!
by
Shinichi Takahashi
RESTful #とは RailsスタイルからRESTを学ぼう
by
Toru Kawamura
DevLove Kansai AWS
by
Takuro Sasaki
はじめてのBluemixでシングルサインオン ~ 希望編!
by
Kazumi OHIRA
JAWSUG Osaka S3 CloudSearch
by
Takuro Sasaki
はじめてのAWS Lambda
by
Masaki Misawa
2016/05/01 Visual Studio with Cordova
by
miso- soup3
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
by
takezoe
5分で分かるmonaca pressproject(草案)
by
Yuki Okamoto
REST 入門
by
Yohei Yamamoto
Kinesis Firehoseを使ってみた
by
Masaki Misawa
MongoDBの監視
by
Tetsutaro Watanabe
Service worker が拓く mobile web の新しいかたち
by
Kinuko Yasuda
JSON Schema で Web API のスキマを埋めよう
by
VOYAGE GROUP
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
by
Takuro Sasaki
Similar to WordPress REST API とリアクティブプログラミング
PDF
WP REST API の活用事例と今後
by
Yuusuke Yoshida
PDF
中級者のためのWordPress講座[第4回]WordPressと外部のWEBAPIと連携させてみよう!
by
switch3000
PDF
WordPressAPI
by
Yuki Okamoto
PDF
WordPress APIで作るモバイルアプリ
by
アシアル株式会社
PDF
WordBench京都12月、WordCampUSからのWP REST APIな話
by
Hidetaka Okamoto
PPTX
Talend StudioでAPIを開発 - SOAP/RESTのサービス開発手法
by
QlikPresalesJapan
PDF
CloudSpiral 2014年度 Webアプリ講義(1日目)
by
Shin Matsumoto
PPTX
エンジニアのための勉強会 #3 『RESTful API』
by
Naoki Yoshitake
PDF
RESTful Meetup vol.3 Introduction
by
Toru Kawamura
PDF
20150704cmsdou
by
Kazue Igarashi
PDF
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
PPTX
HTML5&API総まくり
by
Shumpei Shiraishi
PDF
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
PDF
WordCamp Tokyo 2018 by ocws
by
kouki okuda
PDF
WordCamp Tokyo 2018 REST API データ表示ことはじめ
by
kouki okuda
PDF
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PPTX
RESTful Web API Design
by
Akinari Tsugo
PDF
RESTfulとは
by
星影 月夜
PDF
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
by
Natsuki Yamanaka
WP REST API の活用事例と今後
by
Yuusuke Yoshida
中級者のためのWordPress講座[第4回]WordPressと外部のWEBAPIと連携させてみよう!
by
switch3000
WordPressAPI
by
Yuki Okamoto
WordPress APIで作るモバイルアプリ
by
アシアル株式会社
WordBench京都12月、WordCampUSからのWP REST APIな話
by
Hidetaka Okamoto
Talend StudioでAPIを開発 - SOAP/RESTのサービス開発手法
by
QlikPresalesJapan
CloudSpiral 2014年度 Webアプリ講義(1日目)
by
Shin Matsumoto
エンジニアのための勉強会 #3 『RESTful API』
by
Naoki Yoshitake
RESTful Meetup vol.3 Introduction
by
Toru Kawamura
20150704cmsdou
by
Kazue Igarashi
React.js + Flux入門 #scripty02
by
Yahoo!デベロッパーネットワーク
HTML5&API総まくり
by
Shumpei Shiraishi
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
by
Kazuya Sugimoto
WordCamp Tokyo 2018 by ocws
by
kouki okuda
WordCamp Tokyo 2018 REST API データ表示ことはじめ
by
kouki okuda
50分で掴み取る ASP.NET Web API パターン&テクニック
by
miso- soup3
RESTful Web アプリの設計レビューの話
by
Takuto Wada
RESTful Web API Design
by
Akinari Tsugo
RESTfulとは
by
星影 月夜
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
by
Natsuki Yamanaka
WordPress REST API とリアクティブプログラミング
1.
WordPress REST API
とリアクティブプログラミング SaCSS Special 08
2.
自己紹介 名前 田中 広将(ひろましゃ) 住所
札幌市 職業 SIer 所属のインフラエンジニア WordPress歴 2005年~ WordPress Bench 札幌 発起人(すいません…)
3.
オープンソース活動
4.
本日の内容 本日は、WordPress 4.4 から実装された WordPress
REST API と、 昨今定着してきた「リアクティブ」系 JavaScript ライブラリを組み合わせて、 ウェブサイトを構築する手法を 解説したいと思います
5.
本日の内容 1.WordPress REST API
とは 2.リアクティブプログラミングとは 3.Vue.js と WordPress REST API を組合せた活用
6.
1. WordPress REST
API とは
7.
WP REST API
の歴史 ● WordPress REST API は、バージョン 4.4 からコア実装 された、コンテンツの内容を JSON(JavaScript)形式で 返すための仕組みです。 ● 従来、WordPress においてコンテンツを出力するために 「テーマ」を用いていましたが、REST API の追加により、 新しい出力先が追加された形です。 ● WordPress 4.7(近日リリース)ではさらに、標準的な API も実装され、複雑な抽出操作も、ドキュメントに従い簡単に 取り扱えるようになります。
8.
WordPress REST API
の活用 ● WordPress REST API は「エンドポイント(URL)」 に対して JavaScript などから REST リクエストを行 うことで、コンテンツの内容を取得できます。 ● エンドポイントは自分で設計し拡張することができま す。
9.
WordPress REST API
の活用 REST API を活用すると、WordPress で次のようなこ とが実現可能です。 – 静的サイトへの WordPress コンテンツの記載(本日紹介) – 画面遷移のない検索の実装(本日紹介) – ニュースサイトで見られるような、コンテンツの遅延ロード – バックエンドのコンテンツリポジトリとしての WordPress の 活用 – 等々...
10.
WordPress REST API
を体験する WordPress サイトの URL のおしりに /wp-json/ を付与し てみてください。 /wp-json/ サイトが持っている「エンドポイント」が確認できるエンドポ イントです。
11.
WordPress REST API
を体験する その情報を元にさらにエンドポイントをたどります。 /wp-json/oembed/1.0/embed/ 指定した URL の投稿の抜粋が JSON 形式が取得できます。
12.
WP REST API
と JavaScript の関係 ● 静的サイトや WordPress テーマが、WordPress REST API を通じてコンテンツを取得するために、JavaScript を使います。 ● JavaScript から AJAX を用いて「エンドポイント」に対し て REST リクエストを行い、戻された JSON 形式を入 力とし、HTML に展開するのが大きな流れになります。 ● 閲覧している人の操作に応じて、REST のリクエストを 変化させ、必要な情報を取得します。(条件付き検索な どで活用できます)
13.
WP REST API
と JavaScript の関係 これらを従来のプログラミング手法で実装すると、 煩雑な処理がたくさんでてきます。 そこで登場してきたのが「リアクティブ」系と言われる JavaScript ライブラリです。
14.
従来のプログラミング手法を使った REST API 活用の際の課題点 ●
プログラマーは、ユーザの操作に応じて JSON を 取得し、DOM(HTML)を操作しコンテンツを整形し て出力するプログラムをかきます。 ● 現在画面に表示されている HTML ツリー状態 (ノード)を把握し、必要に応じて HTML タグの追加 や削除を行います。
15.
従来のプログラミング手法を使った REST API 活用の際の課題点 ●
ある操作の後は、この HTML タグがあるので削除する・・・ ● ある操作の後は、この HTML タグがないので追加する・・・ ● ひとつの操作だけではなく、前回、前々回…、いろいろなパターンで変 化していく HTML の状態をすべて把握して、プログラミングしなけれ ばならないのため、特定の操作順に対する考慮不足といった不具合 も起きやすいです。 このような課題に対応すべく登場したのが、 JavaScript のリアクティブ系のライブラリになります。
16.
2. リアクティブプログラミングとは
17.
プログラミングできる人 突然ですが問題です。 ● "プログラミングができる人"とはどのような人で しょう? ● 高度な
CSS が記述できるのに、プログラミングが 苦手という事象が起きるのはなぜでしょう?
18.
プログラミングできる人(答え) ● 「変数」があるからです。 ● CSS には変数がありません。 ● プログラミングができる人は、上から順に流れてい くソースコードの変数の状態を常に把握し、コント ロールする術を知っています。 ● 手続き型、構造化プログラミング、オブジェクト指向 などなど、様々なプログラム言語が持つ仕組みは、 いかに大量の変数の状態を把握しやすくするかと の戦いの中で生まれました。
19.
プログラミングの例 (FizzBuzz 問題) ● FizzBuzz
問題 プログラマーの基本的な素養をみるための、ごく簡 単な問題。
20.
プログラミングの例 (FizzBuzz 問題) ● 問題 1から順に数を表示するプログラムを書け。 ただし3の倍数のときは数の代わりに「Fizz」と、 5の倍数のときは「Buzz」と表示し、 3と5両方の倍数の場合には「FizzBuzz」と表示すること。 ● 回答の出力例 1, 2,
Fizz, 4, Fizz, Buzz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, ...[省略]..., 97, 98, Fizz, Buzz
21.
プログラミングの例 (FizzBuzz 問題・回答) var i;
// 変数 for (i = 1; i <= 100; i++) { // ループ if (i % 3 == 0 && i % 5 == 0) { console.log('FizzBuzz'); } else if (i % 3 == 0) { console.log('Fizz'); } else if (i % 5 == 0) { console.log('Buzz'); } else { console.log(i); } }
22.
従来のプログラミングスタイル
23.
従来のプログラミングスタイル ● ソースコードが上から下に流れることを基本として、 ループで実行される命令の位置をコントロールす る。 ● 命令により変数の値を変化させ、実行中のプログラ ムの状態を変化させ、望みの処理をさせる。 ● プログラミング言語から外の世界に命令し、外部の 状態を変化させる。(画面出力等) ● つらい…
24.
CSSとプログラミング言語の比較 ● CSS はプログラミング言語と異なり、実行行や変 数の状態などをもたず、宣言のみを行うため、シン プルで分かりやすい。 ● このような宣言型のプログラミングスタイルが、従 来と異なる、リアクティブプログラミングの特徴のひ とつです。
25.
CSS で FizzBuzz
問題 ● 問題 1から順に数を表示するプログラムを書け。 ただし3の倍数のときは数の代わりに「Fizz」と、 5の倍数のときは「Buzz」と表示し、 3と5両方の倍数の場合には「FizzBuzz」と表示す ること。
26.
CSSで FizzBuzz 問題・回答 <ol> <li></li> <li></li> ...[省略]... <li></li> <li></li> </ol>
27.
CSSで FizzBuzz 問題・回答 li:nth-child(3n):before
{ content: "Fizz"; } li:nth-child(5n):before { content: "Buzz"; } li:nth-child(15n):before { content: "FizzBuzz"; } li:nth-child(3n), li:nth-child(5n) { list-style: none; }
28.
CSSで FizzBuzz 問題・回答 ●
入力(HTML)を与えれば「宣言」通りオートマティッ クに表示が変わる。 ● これがリアクティブな動きです。 ● というわけで、JavaScript リアクティブ系プログラミ ングも、従来なプログラミングに慣れている方より、 最初から CSS などで宣言的コーディングをしてい る方のほうが、とっつきやすいかもしれません。
29.
JavaScript を使ったリアクティブな例 ● この例は「時間」を入力として、キャラクターを動かす例 です。 http://pararaehon.com/ ● JavaScript
で画面を書き換えるプログラムを簡潔にか こうとすると、リアクティブな宣言的プログラミングにたど りつくような気がします。
30.
JavaScript を使ったリアクティブな例 hitsuji01: { image:
'images/page02/02_hitsuji01.png', update: function() { this.y = 600 + (1 - Math.exp(-6 * (this.tick / 60))) * -280; } },
31.
3. Vue.js と
WP REST API を組み合せた活用
32.
Vue.js でできること ● Vue.js
は JavaScript のリアクティブ系ライブラリの ひとつです。 ● 今日の Vue.js の任務は JSON を入力とし HTML をリアクティブに変化させることです。 ● WordPress REST API で取得した JSON を HTML に展開する宣言します(データバインディン グ) ● 宣言さえ完了すれば、取得した JSON データによっ て勝手に画面が書き換わるイメージです。
33.
Vue.js の特徴 ● Vue.js
は通常 HTML に付与された属性を手がか りに、JavaScript と HTML を結びます。 ● このため、既存の HTML や WordPress テーマ (CMS)と相性が良いです。
34.
Vue.js の特徴 ● 多くのリアクティブ系の
JS ライブラリは、コンポーネントの考え方のもと、処理したい HTML を JavaScript ファイル側に持たせます。 ● WordPress を始めとした多くの CMS では、テーマとなるファイルをその CMS で処 理して HTML を生成するため、 .js ファイルに HTML が移動すると、結構つらいです。 var Hello = React.createClass({ render: function() { return ( <div>Hello {this.props.name}</div> ); } })
35.
Vue.js を単体で使う(練習) ● Vue.js
を単体で使ってデータを HTML に展開 <tbody id="latest"> <tr v-for="item in items"> <td>{{item.post_title}}</td> <td>{{item.post_content}}</td> </tr> </tbody>
36.
Vue.js を単体で使う(練習) <script> new Vue({ el:
'#latest', data: { items: [ { post_title: '佐賀県', post_content : "佐賀市" }, { post_title: '岩手県', post_content : "盛岡市" }, ] } }); </script>
37.
静的ページで Vue.js を使い WordPress
からデータを取得 ● functions.php で WordPress に REST API の口を作成する add_action( 'rest_api_init', function () { register_rest_route( 'sacss/v1', '/latest', array( 'methods' => 'GET', 'callback' => function() { return get_posts( array('orderby' => 'rand' , 'posts_per_page' => -1)); } ) ); } );
38.
静的ページで Vue.js を使い WordPress
からデータを取得 ● 静的 HTML に配置した Vue.js で HTML に展開する <script> new Vue({ el: '#latest', data: { items: [] }, created: function() { this.$http.get('/wp-json/sacss/v1/latest', function (data) { this.items = data; }) } }) </script>
39.
WordPress テーマで Vue.js
を使い WordPress からデータを取得 ● functions.php で WordPress に REST API の口を作成する add_action( 'rest_api_init', function () { register_rest_route( 'sacss/v1', '/cat/(?P<term_id>d+)', array( 'methods' => 'GET', 'args' => array( 'term_id' => array( 'default' => 1, 'sanitize_callback' => 'absint', ) ), 'callback' => function($request) { return get_posts(array( 'cat' => $request->get_param('term_id'), 'posts_per_page' => -1)); } ) ); } );
40.
WordPress テーマで Vue.js
を使い WordPress からデータを取得 ● WordPress テンプレートファイル <ul> <?php foreach(get_categories() as $cat) : ?> <li> <a v-on:click="get(<?php echo $cat->term_id; ?>)" href="#"> <?php echo esc_html($cat->name); ?> </a> </li> <?php endforeach; ?> </ul> <tbody> <tr v-for="item in items"> <td>{{item.post_title}}</td> <td>{{item.post_content}}</td> </tr> </tbody>
41.
WordPress テーマで Vue.js
を使い WordPress からデータを取得 <script> new Vue({ el: '#latest', data: { items: [] }, created: function(){ this.$http.get('/wp-json/sacss/v1/latest', function (data) { this.items = data; }) }, methods: { get: function(term_id) { this.$http.get('/wp-json/sacss/v1/cat/' + term_id, function (data) { this.items = data; }) } } }); </script>
42.
まとめ
43.
まとめ ● WordPress REST
API は JSON 形式でコンテン ツを取得できます。 ● JSON 形式で取得したコンテンツは、リアクティブ 系の JavaScript で宣言的に HTML に展開すると 便利です。 ● Vue.js は WordPress テーマなど CMS のテンプ レートと組み合わせる場合に楽ができ、相性がいい です。
44.
ご清聴ありがとうございました。
Download