SlideShare a Scribd company logo
さくっと作る Spring 入門
2018.2.20
株式会社タグバンガーズ 小川 岳史
with Google Home
自己紹介
• 株式会社タグバンガーズ
• JSUG スタッフ
• Spring Lover (10 years)
• Spring I/O, Spring One 参加
• WallRide (OSS)
• From 横浜
• TagBar
誰について知りたいですか?
概要図
プロフィールが知りたい
小川さんの誕生日は1月8日です小川さんの誕生日を教えて
ご苦労さん! アディオス☆
プロフィール検索アプリ
アーキテクチャ
Google Home Google Assistant
Actions on Google
Dialogflow Spring Boot App DB
音声取得 自然言語解析
webhook
プロフィール
データ取得
音声解析 プロフィール
データ
Actions on Google でプロジェクト作成
DialogFlow をビルド
DialogFlow でインテントの登録
・ユーザが言ったこと
・それに対するアクション
を定義するもの
インテントとは
DialogFlow と Google Assistant を連携させる
アプリ作成の流れ
DB
データアクセス層
プロフィール
データ
web層
Webhook
last-name = 小川
what = 血液型
プロフィール作成 API
プロフィール更新 API
プロフィール削除 API
プロフィール閲覧 API
FulfillmentController
Webhook 用 API
HAL Browser
(API ブラウザ)
Profile
プロフィール
エンティティ
ProfileのCRUD用APIは
自動生成される
ProfileRepository
プロフィール
レポジトリ
プロフィールを尋ねる
プロフィールを管理する
プロフィールアプリ
*** 今回コードを書くところ
fulfillmentText =
小川さんの血液型はA型です Fulfillment … アクションの実装
{
"fulfillmentText": "小川さんの血液型はA型です"
}
Webhook (抜粋)
{
"responseId”: "8dabb00d-d1dc-4874-ab03-91e79f2f2888",
"queryResult": {
"queryText": "小川さんの血液型を教えて",
"parameters": {
"last-name": "小川”,
"what": "血液型"
},
…..
DialogFlowからjson形式でデータが送られてくる
回答をjson形式で返す
Lombok
HAL Browser
Rest Repositories
Spring Boot 2.0.0 RC1
Spring Inializr
APIブラウザ
使いたいライブラリをぽちぽち選んでダウンロードしたアプリを簡単に立ち上げる
Setter/GetterインメモリDB
Spring Data RESTWeb
DBアクセス
Controller作成必要ない!
Web
JPA
H2
start.spring.io
DEMO
https://github.com/ogawa-takeshi/google-home-profile-search-demo
まとめ
Spring を使うと開発者は
ビジネスロジックだけにフォーカスし
最小限のコーディングで
目的を実現できる!!!
ご静聴ありがとうございました

More Related Content

Similar to さくっと作るSpring入門 with Google Home

我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
Naoki Yamada
 
D+IOプロジェクト
D+IOプロジェクトD+IOプロジェクト
D+IOプロジェクト
FUTURELIFEFACTORY
 
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
takashi ono
 
Discussion for Social WEB Bisiness
Discussion for Social WEB BisinessDiscussion for Social WEB Bisiness
Discussion for Social WEB Bisiness
Daisuke Masubuchi
 
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer初めての REST - Representational State Transfer
初めての REST - Representational State Transfer
Tatsumi Naganuma
 
20190514 googlehomeandazure
20190514 googlehomeandazure20190514 googlehomeandazure
20190514 googlehomeandazure
ひかり 影中
 
NucliOS 概要
NucliOS 概要NucliOS 概要
DLL_言語系MicrosoftAIサービス最新情報_202302.pdf
DLL_言語系MicrosoftAIサービス最新情報_202302.pdfDLL_言語系MicrosoftAIサービス最新情報_202302.pdf
DLL_言語系MicrosoftAIサービス最新情報_202302.pdf
Ayako Omori
 
JAZUG_7thAnniversary_CognitiveServices_v2_20170909
JAZUG_7thAnniversary_CognitiveServices_v2_20170909JAZUG_7thAnniversary_CognitiveServices_v2_20170909
JAZUG_7thAnniversary_CognitiveServices_v2_20170909
Ayako Omori
 
Flex入門
Flex入門Flex入門
Flex入門
Shinjiro Watanabe
 
俺が作れるさいきょうAIアシストシステム.pptx
俺が作れるさいきょうAIアシストシステム.pptx俺が作れるさいきょうAIアシストシステム.pptx
俺が作れるさいきょうAIアシストシステム.pptx
ytakahashineco
 
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えることデザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えること
Kohei Kakudo
 
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
Yahoo!デベロッパーネットワーク
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携
CData Software Japan
 
Google Home Voice App
Google Home Voice AppGoogle Home Voice App
Google Home Voice App
Yoshima Fukuda
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門
貴寛 益子
 
AIプロジェクトを始めるための周囲の巻き込み方
AIプロジェクトを始めるための周囲の巻き込み方AIプロジェクトを始めるための周囲の巻き込み方
AIプロジェクトを始めるための周囲の巻き込み方
Daisuke Okamoto
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
de:code 2017
 
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdf
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdfCogbot_AzureOpenAIServices_AzureAI_20230302.pdf
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdf
Ayako Omori
 

Similar to さくっと作るSpring入門 with Google Home (20)

我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
D+IOプロジェクト
D+IOプロジェクトD+IOプロジェクト
D+IOプロジェクト
 
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
WordPress名古屋コミュニティの進化[WordBench Nagoya 2017年3月勉強会]
 
Discussion for Social WEB Bisiness
Discussion for Social WEB BisinessDiscussion for Social WEB Bisiness
Discussion for Social WEB Bisiness
 
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer初めての REST - Representational State Transfer
初めての REST - Representational State Transfer
 
20190514 googlehomeandazure
20190514 googlehomeandazure20190514 googlehomeandazure
20190514 googlehomeandazure
 
NucliOS 概要
NucliOS 概要NucliOS 概要
NucliOS 概要
 
DLL_言語系MicrosoftAIサービス最新情報_202302.pdf
DLL_言語系MicrosoftAIサービス最新情報_202302.pdfDLL_言語系MicrosoftAIサービス最新情報_202302.pdf
DLL_言語系MicrosoftAIサービス最新情報_202302.pdf
 
JAZUG_7thAnniversary_CognitiveServices_v2_20170909
JAZUG_7thAnniversary_CognitiveServices_v2_20170909JAZUG_7thAnniversary_CognitiveServices_v2_20170909
JAZUG_7thAnniversary_CognitiveServices_v2_20170909
 
Flex入門
Flex入門Flex入門
Flex入門
 
俺が作れるさいきょうAIアシストシステム.pptx
俺が作れるさいきょうAIアシストシステム.pptx俺が作れるさいきょうAIアシストシステム.pptx
俺が作れるさいきょうAIアシストシステム.pptx
 
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えることデザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えること
 
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
 
複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう複数言語に触れてIoTの表現の幅を広げよう
複数言語に触れてIoTの表現の幅を広げよう
 
ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携ADO.NETでつながるクラウドデータ連携
ADO.NETでつながるクラウドデータ連携
 
Google Home Voice App
Google Home Voice AppGoogle Home Voice App
Google Home Voice App
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門
 
AIプロジェクトを始めるための周囲の巻き込み方
AIプロジェクトを始めるための周囲の巻き込み方AIプロジェクトを始めるための周囲の巻き込み方
AIプロジェクトを始めるための周囲の巻き込み方
 
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
 
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdf
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdfCogbot_AzureOpenAIServices_AzureAI_20230302.pdf
Cogbot_AzureOpenAIServices_AzureAI_20230302.pdf
 

More from Takeshi Ogawa

今こそ知りたい Spring Data
今こそ知りたい Spring Data今こそ知りたい Spring Data
今こそ知りたい Spring Data
Takeshi Ogawa
 
Spring Cloud Gateway on Kubernetes
Spring Cloud Gateway on KubernetesSpring Cloud Gateway on Kubernetes
Spring Cloud Gateway on Kubernetes
Takeshi Ogawa
 
Spring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - ModulithsSpring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - Moduliths
Takeshi Ogawa
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
Takeshi Ogawa
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 

More from Takeshi Ogawa (6)

今こそ知りたい Spring Data
今こそ知りたい Spring Data今こそ知りたい Spring Data
今こそ知りたい Spring Data
 
Spring Cloud Gateway on Kubernetes
Spring Cloud Gateway on KubernetesSpring Cloud Gateway on Kubernetes
Spring Cloud Gateway on Kubernetes
 
Spring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - ModulithsSpring I/O 2019 Recap - Moduliths
Spring I/O 2019 Recap - Moduliths
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 

Recently uploaded

Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19
GrapeCity, inc.
 
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet DocumentationRaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
GrapeCity, inc.
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
Bhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSDBhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSD
Yuichiro Naito
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
TatsuyaHanayama
 

Recently uploaded (8)

Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
 
RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19RaySheet Product Description Documentation - 2024.6.19
RaySheet Product Description Documentation - 2024.6.19
 
RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19RayBarcode Product Description Documentation - 2024.6.19
RayBarcode Product Description Documentation - 2024.6.19
 
RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19RayPen Product Description Documentation - 2024.6.19
RayPen Product Description Documentation - 2024.6.19
 
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet DocumentationRaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
RaySheetで解決できるシナリオ10選-業務改善に貢献する機能 - RaySheet Documentation
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
 
Bhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSDBhyve Management Daemon Version 3.0 on FreBSD
Bhyve Management Daemon Version 3.0 on FreBSD
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
 

さくっと作るSpring入門 with Google Home