SlideShare a Scribd company logo
1 of 73
未来のwebに欠かせないREST APIを
Apache Solr + Drupalで実装しよう
KDDIウェブコミュニケーションズ
阿部 正幸
ACE01 / SmartRelease プロダクトマネージャー
CPI エバンジェリスト 統括
KDDIウェブ 公認 CPI スタッフブログ 編集長
TechAcademy講師
HTML5 Fun 理事
ANNAI株式会社 社外取締役(CMO)
阿部 正幸(あべ まさゆき)
KDDIウェブコミュニケーションズ
Venture
Since
1998
Web
Service
Hosting
1. コンテンツ中心設計(personalized)
2. コンテンツの再利用
3. 柔軟なシステム
4. APIを通じてコンテンツの配信(REST)
5. ビジネスニーズ(UX、MA)
CMSは インタラクティブ と
マルチチャネルプラットフォーム の
ための API に急速に進化
注目が集まるREST API
なぜ必要なのか
CMS
これまでのCMS
IoT
iPhone App
Signage
Android App
a Company
Product B
Recruit Event
IR
Product A
Corporate
Campaing
Blog
増え続けるサイトとシステム
Prodcut
CMS
RESTサーバー
Event
Blog
Corporate
Application
Other System
担当者
これからのCMS
たとえば
- KWCの場合 -
情報発信しているメディア
情報発信しているメディア
まだまだある ……
たとえば
- CPIのイベントを掲載する -
私 : CPIスタッフブログに掲載
広報 : コーポレートサイトに掲載
コンパネ担当 : コンパネに表示
メルマガ担当 : メルマガ発行
メルマガ担当 : Web閲覧用メルマガ作成
デザイン部 : CPIサイトに掲載
たとえば
- CPIのイベントを掲載する -
私 : CPIスタッフブログに掲載
広報 : コーポレートサイトに掲載
コンパネ担当 : コンパネに表示
メルマガ担当 : メルマガ発行
メルマガ担当 : Web閲覧用メルマガ作成
デザイン部 : CPIサイトに掲載多くの工数がかかってしまう
KWC
RESTサーバー
メルマガ
CPI ブログ
コンパネ
Other Application
Other System
担当者
これからのCMS
Internet
閲覧者
webサーバー
(AWS)
Drupal8
Views
Drupal8
REST Service
検索
記事
記事一覧
DB
S2Robot
サイトクロール
インデックス登録
Internet
チャットシステム MAツール Other APICRMSMS
web hook
何かをフックに
他システム連動
webサーバー
- AWS EC2 -
webサーバー構築手順
(手順1)
yumで適当にLAMP 構築
$ sudo yum install -y httpd24 php56
mysql55-server php56-mysqlnd
php56-opcache
RESTサーバー
- Drupal8インストール -
RESTサーバー構築手順
(手順1)
Drupal8 Coreダウンロードし解凍
https://www.drupal.org/project/drupal
$ crul –O http:// URL /drupal.tar.gz
$ tar –xfv drupal.tar.gz
RESTサーバー構築手順
(手順2)
Drupal8用Database作成
# MySQL起動
$ sudo service mysqld start
$ sudo chkconfig mysqld on
# MySQLログイン
$ mysql -u root
mysql > CREATE DATABASE drupal_db DEFAULT
CHARACTER SET utf8 COLLATE utf8mb4_general_ci;
RESTサーバー構築手順
(手順3)
PHPモジュール追加
# gd
# yum list | grep gd でリストを出す
$ sudo yum install php56-gd.x86_64
# mbstring
# yum list | grep mgstring でリストを出す
$ sudo yum install php56-mbstring.x86_64
RESTサーバー構築手順
(手順4)
.htaccess許可設定
# htaccess許可
$ sudo vi /etc/httpd/conf/httpd.conf
<Directory "/var/www">
AllowOverride All
Require all granted
</Directory>
$ sudo service httpd restart
RESTサーバー構築手順
(手順5)
http://example.com/ にアクセスし、
Drupal8インストール(よしなに)
RESTサーバー
- Drupal8設定(記事単体) -
Drupal8 REST API 機能
- 認証不要
GET Request (記事取得)
- CSRF Token ユーザー認証必須
POST Request (記事新規作成)
DELETE Request (記事削除)
PATCH Request (記事更新)
※ リクエスト方法は後ほど
Drupal8 REST 設定
(手順1)
REST UIモジュールをインストール
https://www.drupal.org/project/restui
Drupal8 REST 設定
(手順2)
「環境設定 > REST」から使用するMethodや、Data Type
を選択
Drupal8 REST 設定
(手順3)
「ユーザー > 権限」からアクセスできる権限を指定
RESTサーバー
- GET Request -
Get Request
https://example.com/node/<nid>?_format=json
Request
200 OK
Response
RESTサーバー
- POST, DELETE, PATCH Request -
Login 認証
https://example.com/user/login
Request (metod : post)
303 See Other
Response
application/x-www-form-urlencoded
Content-Type
name=USERID&pass=PASSWORD&form_id=user_login_form
Body
CSRF Token取得
https://example.com/rest/session/token
Request (metod : get)
200 OK
Response
POST Request (記事新規作成)
https://example.com/entity/none
Request (metod : post)
201 Created
Response
application/hal+json
Content-Type
{ Get from /rest/session/token }
X-CSRF-Token
POST Request (記事新規作成)
{
"_links": {
"type": {
"href": "https://example.com/rest/type/node/article"
}
},
"title": {
"value": "Test Article"
},
"type": {
"target_id": "article"
}
}
Body
POST Request (記事新規作成)
PATCH / DELETE Request
https://example.com/node/node_id
Request (metod : PATCH)
204 No Contet
Response
application/hal+json
Content-Type
{ Get from /rest/session/token }
X-CSRF-Token
{
"_links": {
"type": {
"href": "http://examle.com/rest/type/node/article"
}},
"title": [{
"value": "My page created via REST (Updated)"
}],
"body": [{
"value": "This updated too"
}],
"type": [{
"target_id": "article"
}]
}
Body
PATCH / DELETE Request
PATCH / DELETE Request
RESTサーバー
- Drupal8設定(記事一覧) -
サイト構築 > ビューズ > ビューを追加
「REST出力を提供する」にチェックをし「保存」
REST 記事一覧
検索用REST
- FESS Server -
Internet
閲覧者
webサーバー
(AWS)
Drupal8
Views
Drupal8
REST Service
検索
記事
記事一覧
DB
S2Robot
サイトクロール
インデックス登録
Internet
閲覧者
Drupal8
Views
Drupal8
REST Service
記事
記事一覧FESS
検索
DB
S2Robot
サイトクロール
インデックス登録
webサーバー
(AWS)
Fess10構成
Fess9構成
画像元:http://fess.codelibs.org/ja/articles/article-1.html
FESS(検索エンジン)
10系
Elasticsearch
9系
Apache Solr
※ 大規模向けに対応
クローラー、O/Rマッパー、シノニム、
サジェストなど検索に必要な
コンポーネントを
オールインワンパッケージで提供
Fess9.4インストール
- java 削除
$ sudo rpm -qa | grep java
$ sudo rpm -e java-1.7.0-openjdk-1.7.0.101-2.6.6.1.67.amzn1.x86_64
- JDKインストール
$ sudo yum install java-1.8.0-openjdk.x86_64
$ sudo yum install java-1.8.0-openjdk-devel.x86_64
- Fessインストール
$ sudo wget https://github.com/codelibs/fess/archive/fess-9.4.2.tar.gz
$ sudo tar xvzf fess.tar.gz
$ sudo mv fess-server-9.4.2 /etc
$ sudo cd /etc/fess-server-9.4.2
$ sudo chmod +x bin/*.sh
Fess9.4インストール
- Fess起動
# /etc/fess-server-9.4.2/bin/startup.sh
- FESSのProxy設定
$ sudo vi /etc/httpd/conf/httpd.conf
Include /etc/httpd/conf.d/httpd-proxy.conf <- 追加
$ sudo vi httpd-proxy.conf
ProxyPass /fess/ ajp://localhost:8009/fess/ <- 追加
- Apache再起動
# service httpd restart
http://example.com/fess/admin
Fess管理画面
Fess10 インストール
- java 削除
$ sudo rpm -qa | grep java
$ sudo rpm -e java-1.7.0-openjdk-1.7.0.101-2.6.6.1.67.amzn1.x86_64
- JDKインストール
$ sudo yum install java-1.8.0-openjdk.x86_64
$ sudo yum install java-1.8.0-openjdk-devel.x86_64
- Fessダウンロード
https://github.com/codelibs/fess/releases
- Fessダウンロード
$ unzip /etc/fess-10.2.1.zip
Fess10 インストール
- FESS起動
# bin/fess
- FESS終了
$ ps aux | grep fess
$ sudo kill -9 [pid]
Java ヒープ・メモリ
適宜JAVAヒープ・メモリを調整
Javaヒープ・メモリ:2GB
$ sudo vim bin/fess.in.sh
-----------------------------------------------
if [ "x$FESS_MIN_MEM" = "x" ]; then
FESS_MIN_MEM=256m
fi
if [ "x$FESS_MAX_MEM" = "x" ]; then
FESS_MAX_MEM=2g
fi
Fess10設定
サジェスト
http://example.com/suggest?query=fess&num10
検索
http://example.com/json/?type=search&q=drupal&num10
FESS10系 REST API
q :検索語(URLエンコード)
start :開始件数位置
num :表示件数
fields.label :ラベル値
参考:http://fess.codelibs.org/ja/10.2/api/api-search.html
他システム連携
- Web hook -
Internet
チャットシステム MAツール Other APICRMSMS
web hook
何かをフックに
他システム連動
(例)Web hook to SMS
web hook
投稿を検知
APIをキック
Twilio API
APIからSMS
送信
記事を投稿
CMS
Drupla Rules moduleインストール
https://www.drupal.org/project/rules
Web hook
SMS送信用プログラム (Twilio)
DEMO
さいごに
REST化メリット
コンテツを効率よく配信できる
システムとデザインの分離
他システムとの連携が容易になる
CMS + REST
各CMSでREST対応モジュールが出ているので
後からREST化することが可能
WP : WP REST API MT : Data API
ありがとうございました
ID:chiyo.abe
阿部 正幸
cpi-line

More Related Content

What's hot

Build insider testingwithvs
Build insider testingwithvsBuild insider testingwithvs
Build insider testingwithvsTomoyuki Iwade
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニックmiso- soup3
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Takakiyo Tanaka
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料Yasuo Ohgaki
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?Atsushi Fukui
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011Hiroshi Tokumaru
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo!デベロッパーネットワーク
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Koichi Sakata
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力Kota Mizushima
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成Tomoki Oyamatsu
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Takuya Iwatsuka
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
[使い倒し]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
 

What's hot (20)

Build insider testingwithvs
Build insider testingwithvsBuild insider testingwithvs
Build insider testingwithvs
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
 
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
 
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力
 
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
RESTful Webサービス
RESTful WebサービスRESTful Webサービス
RESTful Webサービス
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
[使い倒し]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)
 

Similar to 未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京

ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -Yuji Takayama
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリアシアル株式会社
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣Yuji Takayama
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 
Hybrid serverless architecture using open whisk ibm cloud functions and istio...
Hybrid serverless architecture using open whisk ibm cloud functions and istio...Hybrid serverless architecture using open whisk ibm cloud functions and istio...
Hybrid serverless architecture using open whisk ibm cloud functions and istio...Tsuyoshi Hirayama
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)Yuji Takayama
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Yuji Takayama
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版Junichiro Tasaki
 
初めての Data api
初めての Data api初めての Data api
初めての Data apiYuji Takayama
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Toru Kawamura
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Sho Ito
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようTasuku Otani
 
jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作西畑 一馬
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムMasayuki Abe
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Shotaro Suzuki
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」fukuoka.ex
 

Similar to 未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京 (20)

ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
 
Data API 2.0
Data API 2.0Data API 2.0
Data API 2.0
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
Hybrid serverless architecture using open whisk ibm cloud functions and istio...
Hybrid serverless architecture using open whisk ibm cloud functions and istio...Hybrid serverless architecture using open whisk ibm cloud functions and istio...
Hybrid serverless architecture using open whisk ibm cloud functions and istio...
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版
 
初めての Data api
初めての Data api初めての Data api
初めての Data api
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
 
jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作
 
Chatterを使ったカスタムソーシャル
Chatterを使ったカスタムソーシャルChatterを使ったカスタムソーシャル
Chatterを使ったカスタムソーシャル
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 

More from Masayuki Abe

JavaScriptライフを10倍楽しくする方法-HTML5fun-
 JavaScriptライフを10倍楽しくする方法-HTML5fun- JavaScriptライフを10倍楽しくする方法-HTML5fun-
JavaScriptライフを10倍楽しくする方法-HTML5fun-Masayuki Abe
 
javascriptの基礎
javascriptの基礎javascriptの基礎
javascriptの基礎Masayuki Abe
 
Drupal7 Blockでサイト構築しよう@Drupal cafe
Drupal7 Blockでサイト構築しよう@Drupal cafeDrupal7 Blockでサイト構築しよう@Drupal cafe
Drupal7 Blockでサイト構築しよう@Drupal cafeMasayuki Abe
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西Masayuki Abe
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りMasayuki Abe
 
Html5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けようHtml5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けようMasayuki Abe
 
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Masayuki Abe
 
Google Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しようGoogle Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しようMasayuki Abe
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Masayuki Abe
 
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しようMasayuki Abe
 
Html5 fun@Tokyo Bootstrap Tips
Html5 fun@Tokyo Bootstrap TipsHtml5 fun@Tokyo Bootstrap Tips
Html5 fun@Tokyo Bootstrap TipsMasayuki Abe
 
Word pressセミナー東京[マイナビ主催] 阿部20131216
Word pressセミナー東京[マイナビ主催] 阿部20131216Word pressセミナー東京[マイナビ主催] 阿部20131216
Word pressセミナー東京[マイナビ主催] 阿部20131216Masayuki Abe
 
WordBench ISHIKAWA
WordBench ISHIKAWAWordBench ISHIKAWA
WordBench ISHIKAWAMasayuki Abe
 
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようCSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようMasayuki Abe
 
関デジセミナー20130710
関デジセミナー20130710関デジセミナー20130710
関デジセミナー20130710Masayuki Abe
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901Masayuki Abe
 
Firebug×smart release20120904
Firebug×smart release20120904Firebug×smart release20120904
Firebug×smart release20120904Masayuki Abe
 
ちゃんとWeb会議
ちゃんとWeb会議ちゃんとWeb会議
ちゃんとWeb会議Masayuki Abe
 

More from Masayuki Abe (18)

JavaScriptライフを10倍楽しくする方法-HTML5fun-
 JavaScriptライフを10倍楽しくする方法-HTML5fun- JavaScriptライフを10倍楽しくする方法-HTML5fun-
JavaScriptライフを10倍楽しくする方法-HTML5fun-
 
javascriptの基礎
javascriptの基礎javascriptの基礎
javascriptの基礎
 
Drupal7 Blockでサイト構築しよう@Drupal cafe
Drupal7 Blockでサイト構築しよう@Drupal cafeDrupal7 Blockでサイト構築しよう@Drupal cafe
Drupal7 Blockでサイト構築しよう@Drupal cafe
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
 
Bootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭りBootstrapにちょい足しアニメーション@春のJavascript祭り
Bootstrapにちょい足しアニメーション@春のJavascript祭り
 
Html5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けようHtml5fun@東京 Bootstrapにアニメーションを付けよう
Html5fun@東京 Bootstrapにアニメーションを付けよう
 
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
 
Google Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しようGoogle Material DesignをPolymerで表現しよう
Google Material DesignをPolymerで表現しよう
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
 
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
[okaweb × HTML5 fun] HTML5で人気のAPIを使って 未来価値を創造しよう
 
Html5 fun@Tokyo Bootstrap Tips
Html5 fun@Tokyo Bootstrap TipsHtml5 fun@Tokyo Bootstrap Tips
Html5 fun@Tokyo Bootstrap Tips
 
Word pressセミナー東京[マイナビ主催] 阿部20131216
Word pressセミナー東京[マイナビ主催] 阿部20131216Word pressセミナー東京[マイナビ主催] 阿部20131216
Word pressセミナー東京[マイナビ主催] 阿部20131216
 
WordBench ISHIKAWA
WordBench ISHIKAWAWordBench ISHIKAWA
WordBench ISHIKAWA
 
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しようCSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
CSSフレームワークとCMS+RWDテンプレでレスポンシブWebデザインサイトを構築しよう
 
関デジセミナー20130710
関デジセミナー20130710関デジセミナー20130710
関デジセミナー20130710
 
サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901サーバーの初歩的な話セミナー@大阪20120901
サーバーの初歩的な話セミナー@大阪20120901
 
Firebug×smart release20120904
Firebug×smart release20120904Firebug×smart release20120904
Firebug×smart release20120904
 
ちゃんとWeb会議
ちゃんとWeb会議ちゃんとWeb会議
ちゃんとWeb会議
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京

Editor's Notes

  1. 1. コンテンツが中心でなければならない コンテンツが接続されたシステムのハブになる。 コンテンツはパーソナライズされたデータを配信する方法を学ばなければいけない。 The CMS must learn how to deliver personalized, context-aware content 2. コンテンツの再利用 -> ベンダーロックインなどを避ける 3. 柔軟なシステム(タクソノミー、テンプレート、メタデータ) 4. APIを通じてコンテンツの配信 マルチプラットフォーム、REST、Decupledの話 5. ビジネスニーズ カスタマーエクスペリエンスなどのニーズに対して高速で技術を 選択できること