狠狠撸

狠狠撸Share 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

Dart flightschool cloudendpoint with dart