SlideShare a Scribd company logo
Google Cloud Endpoints
with
Dartlang
Dart flightschool cloudendpoint with dart
Dart flightschool cloudendpoint with dart
@soundTricker318
http://goo.gl/ZpUOs
どこの
人?
http://www.bfts.co.jp
何やってる?
Dart flightschool cloudendpoint with dart
電
車
プ
ロ
グ
ラ
マ
https://www.flickr.com/photos/centralasian/ (CC)
ぼく
と

altjs
GWT
GWT Bootstrap
※コミッター

CoffeeScript
←Javaで書ける夢を見た

←ナマのJSツライ
※Javascript → Javaのポーティング

←漠然とした不安感
※今のところココに落ち着いてる
Dart flightschool cloudendpoint with dart
Google Cloud Endpoints
with
Dartlang
Google
Cloud
Endpoints
?

Google
Cloud
Endpoints

What?

https://developers.google.com/appengine/docs/java/endpoints/
?

Google
Cloud
Endpoints

What?

AppEngine上に
バックエンドAPIを
簡単に作成する仕組
https://developers.google.com/appengine/docs/java/endpoints/
?

Google
Cloud
Endpoints

What?

作成したAPIに対する
クライアントライブラ
リを

自動生成
https://developers.google.com/appengine/docs/java/endpoints/
?

Google
Cloud
Endpoints

使える言語

サーバサイド

Python
Pythonで
Cloud Endpointsの
事例をあまりみないので
どっかLTとかするとウケそ
う
?

Google
Cloud
Endpoints

使える言語

サーバサイド

Java
事例もよく見るので
始めるのは楽かも
JAX-RSに似てる
でも結構違う
http://www.flickr.com/photos/andypiper/
?

Google
Cloud
Endpoints

使える言語

サーバサイド

Go

Googleが
直接サポートしているわけではなく、
サードパーティツールを使う(後述)
個人的には好き

http://www.flickr.com/photos/andybons/
?

Google
Cloud
Endpoints

クライアント

自動生成ライブラリ

Android
Cloud Endpointsと
触ったことが無い( ー`дー´)キリッ

https://www.flickr.com/photos/etnyk/
?

Google
Cloud
Endpoints

クライアント

自動生成ライブラリ

iPhone
持ってない( ー`дー´)キリッ

https://www.flickr.com/photos/reticulating/
?

Google
Cloud
Endpoints

クライアント

自動生成ライブラリ

No
Image

JavaScript
自動生成できる、
Google API client for JavaScript経由で
利用時に作成されたものが使える
感じ?
?

Google
Cloud
Endpoints

クライアント

自動生成ライブラリ

Dart
ココに来てやっと( ー`дー´)キリッ
ただGoogleが
サポートしているわけではなく
サードパーティ製
T

Google
Cloud
Endpoints
T

Google
Cloud
Endpoints
T

Google
Cloud
Endpoints

Third party

Third party
T

Google
Cloud
Endpoints

サーバサイド

環境
•

Appengine Go SDK
• MacユーザはbrewからでもOK

$ brew install go-app-engine-64
Google
Cloud
Endpoints

T

サーバサイド

ライブラリインストール
•

go-endpointsを使います

$ go get github.com/crhym3/goendpoints/endpoints
※インストール時にエラーが出ますが気にしないでください。
T

Google
Cloud
Endpoints

サーバサイド

通信用構造体(struct)を作成
•

go-endpointsが自動で
JSON←→Struct変換してくれます。
T

Google
Cloud
Endpoints

サーバサイド

通信用構造体(struct)を作成
T

Google
Cloud
Endpoints

サーバサイド

サービス(実処理)を作成
•

go-endpointsが変換したstructを
引数に渡してくれます。
T

Google
Cloud
Endpoints

サーバサイド

サービス(実処理)を作成
T

Google
Cloud
Endpoints

サーバサイド

サービスを登録
•

サービスをgo-endpontsに登録
T

Google
Cloud
Endpoints

サーバサイド

サービスを登録
T

Google
Cloud
Endpoints

サーバサイド

app.yamlで設定
•

go-endpontsが動くようにします。
application: my-app-id
version: v1
threadsafe: true
runtime: go
api_version: go1

handlers:
- url: /.*
script: _go_app
# ここが絶対に必要
- url: /_ah/spi/.*
script: _go_app
T

Google
Cloud
Endpoints

サーバサイド

起動
•

appengine go SDK経由

$ goapp serve
T

Google
Cloud
Endpoints

サーバサイド

テスト
•

http://localhost:8080/_ah/api/explor
er
とかに行けば試せる
T

Google
Cloud
Endpoints

テスト

サーバサイド
T

Google
Cloud
Endpoints

サーバサイド

リリース
•

goapp deployでリリース

$ goapp deploy
T

Google
Cloud
Endpoints

クライアント

ライブラリのGeneratorをインス
コ GeneratorがあるのでそれをGithub
•
から持ってきます。
$ git clone https://github.com/dartgde/discovery_api_dart_client_generator
$ cd discovery_api_dart_client_generator
$ pub install
T

Google
Cloud
Endpoints

クライアント

ライブラリを作成
•
•

generate.dartを呼び出し
dart_{APIの名前}のディレクトリが出
$ URL=‘https://hogehoge.appstop.com/_ah/api/discove
ry/v1/apis/greeting/v1/rest‘
$ curl -s -o greetings.rpc.discovery $URL
$ bin/generate.dart –I greetings.rpc.discovery –o ../ -no-prefix
T

Google
Cloud
Endpoints

使い方

設定
•

pubspec.yamlでローカルライブラ
リを呼び出し
name: GreetingApp
description: A sample web application
dependencies:
browser: any
greeting_v1_api :
path : /path/to/dart_greeting_v1_api_client
T

Google
Cloud
Endpoints

使い方

Import
•

{API名}_browser.dart
{API名}_client.dartをimport

import 'package:greeting_v1_api/greeting_v1_api_browser.dart' as greetingLib;
import 'package:greeting_v1_api/greeting_v1_api_client.dart' as greetingClient;
T

Google
Cloud
Endpoints

使い方

呼び出し
•

{API名}_client側にある{API名}のイ
ンスタンスを作成し、呼び出し

greetingLib.Greeting greeting = new greetingLib.Greeting();
greeting.greets.list().then(
(greetingClient.GreetingsList value)=> print(value)
);
T

Google
Cloud
Endpoints
T

Google
Cloud
Endpoints

使い所?

使いドコロ
•
•

コンソールアプリケーション
Chrome Extension/App
• Chrome Appならcordovaとか経由
でAndroid/iPhoneでも使えるか
も?
• 割りと大規模なプロジェクト?
Dart flightschool cloudendpoint with dart
Appendix
元GWTTERから見た
Dart
お願い
アンケートにご協力
http://goo.gl/98QcPN
を!

More Related Content

PDF
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
PDF
HTML5とOSSで作るブラウザで簡単顔認識
KEY
JavaScript on GitHub (#kyotojs)
PDF
C#の強み、或いは何故PHPから乗り換えるのか
PDF
LightNode - Micro RPC/REST Framework
PDF
Linkage of gulp & sketch
PPTX
2010/8/27 TechEd2010 ライトニングトーク
PDF
今すぐブラウザでES6を使おう
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
HTML5とOSSで作るブラウザで簡単顔認識
JavaScript on GitHub (#kyotojs)
C#の強み、或いは何故PHPから乗り換えるのか
LightNode - Micro RPC/REST Framework
Linkage of gulp & sketch
2010/8/27 TechEd2010 ライトニングトーク
今すぐブラウザでES6を使おう

What's hot (20)

PDF
PhoneGapでWebアプリをスマホアプリ化
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
PDF
オープンソースで始めるオフラインアプリケーション開発入門
PDF
LIGでのDocker活用
PDF
Try! Visual Studio 209 git feature
PDF
Angularモダンweb開発セミナー紹介 20170923
PDF
いい感じのフロントエンド開発環境を作ってみた
PDF
GitHub Actions で CI/CD
PDF
Front-end package managers
PPTX
[社内勉強会]Gradleを使おう
PDF
Swaggerのさわりだけ
PDF
Gae hands on
PDF
.NET の今と今後に思うこと
PDF
インフラ部門で働くCプログラマの話
PPTX
Google Apps Scriptとは? Add-onとは?
PDF
Espruinoの紹介
PPTX
React native vol3
PDF
マイクロサービス開発が捗る Project Tye
PDF
GraphQLについての5分間
PDF
The Twelve-Factor (A|M)pp with C#
PhoneGapでWebアプリをスマホアプリ化
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
オープンソースで始めるオフラインアプリケーション開発入門
LIGでのDocker活用
Try! Visual Studio 209 git feature
Angularモダンweb開発セミナー紹介 20170923
いい感じのフロントエンド開発環境を作ってみた
GitHub Actions で CI/CD
Front-end package managers
[社内勉強会]Gradleを使おう
Swaggerのさわりだけ
Gae hands on
.NET の今と今後に思うこと
インフラ部門で働くCプログラマの話
Google Apps Scriptとは? Add-onとは?
Espruinoの紹介
React native vol3
マイクロサービス開発が捗る Project Tye
GraphQLについての5分間
The Twelve-Factor (A|M)pp with C#
Ad

Viewers also liked (6)

PDF
12 2 panel_bechauf
PPTX
Dockerハンズオン
PPTX
Bricks to Clicks
PPTX
gcp ja night #27 Google Cloud Endpoints with Golang
PDF
Cassandra 2.0 better, faster, stronger
PPT
Toronto jaspersoft meetup
12 2 panel_bechauf
Dockerハンズオン
Bricks to Clicks
gcp ja night #27 Google Cloud Endpoints with Golang
Cassandra 2.0 better, faster, stronger
Toronto jaspersoft meetup
Ad

Similar to Dart flightschool cloudendpoint with dart (20)

KEY
リモートデバッグツール Weinerをつかってみた
PPTX
Hands on PhotoBlog App with WordPress REST API and App Inventor
PDF
.NET の過去、現在、そして未来
PDF
VSCodeで始めるAzure Static Web Apps開発
PDF
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
PDF
第49回HTML5勉強会 Google I/O 2014サマリー
PDF
Dartでサーバレスサービス
PDF
LabVIEW NXG Web Module Training Slide
PDF
Azure Fundamental
PPTX
CordovaでAngularJSアプリ開発
PDF
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
PDF
Google Cloud Dataflow を理解する - #bq_sushi
PDF
GDG Shikoku 2013
PDF
Mvc conf session_5_isami
PDF
Html5 canvasとgoogle maps apiで遊んでみた
PDF
モバイルVR「Daydream」でVRの世界にふれてみる
PDF
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
PDF
Grailsのススメ(仮)
PDF
A Framework for LightUp Applications of Grani
リモートデバッグツール Weinerをつかってみた
Hands on PhotoBlog App with WordPress REST API and App Inventor
.NET の過去、現在、そして未来
VSCodeで始めるAzure Static Web Apps開発
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
第49回HTML5勉強会 Google I/O 2014サマリー
Dartでサーバレスサービス
LabVIEW NXG Web Module Training Slide
Azure Fundamental
CordovaでAngularJSアプリ開発
CEDEC 2015: Google スケールで実現する!ゲーム&分析基盤
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Google Cloud Dataflow を理解する - #bq_sushi
GDG Shikoku 2013
Mvc conf session_5_isami
Html5 canvasとgoogle maps apiで遊んでみた
モバイルVR「Daydream」でVRの世界にふれてみる
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Grailsのススメ(仮)
A Framework for LightUp Applications of Grani

Dart flightschool cloudendpoint with dart