Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dart flightschool cloudendpoint with dart

1,716 views

Published on

  • Be the first to comment

Dart flightschool cloudendpoint with dart

  1. 1. Google Cloud Endpoints with Dartlang
  2. 2. @soundTricker318 http://goo.gl/ZpUOs
  3. 3. どこの 人?
  4. 4. http://www.bfts.co.jp
  5. 5. 何やってる?
  6. 6. 電 車 プ ロ グ ラ マ https://www.flickr.com/photos/centralasian/ (CC)
  7. 7. ぼく と altjs
  8. 8. GWT GWT Bootstrap ※コミッター CoffeeScript
  9. 9. ←Javaで書ける夢を見た ←ナマのJSツライ ※Javascript → Javaのポーティング ←漠然とした不安感 ※今のところココに落ち着いてる
  10. 10. Google Cloud Endpoints with Dartlang
  11. 11. Google Cloud Endpoints
  12. 12. ? Google Cloud Endpoints What? https://developers.google.com/appengine/docs/java/endpoints/
  13. 13. ? Google Cloud Endpoints What? AppEngine上に バックエンドAPIを 簡単に作成する仕組 https://developers.google.com/appengine/docs/java/endpoints/
  14. 14. ? Google Cloud Endpoints What? 作成したAPIに対する クライアントライブラ リを 自動生成 https://developers.google.com/appengine/docs/java/endpoints/
  15. 15. ? Google Cloud Endpoints 使える言語 サーバサイド Python Pythonで Cloud Endpointsの 事例をあまりみないので どっかLTとかするとウケそ う
  16. 16. ? Google Cloud Endpoints 使える言語 サーバサイド Java 事例もよく見るので 始めるのは楽かも JAX-RSに似てる でも結構違う http://www.flickr.com/photos/andypiper/
  17. 17. ? Google Cloud Endpoints 使える言語 サーバサイド Go Googleが 直接サポートしているわけではなく、 サードパーティツールを使う(後述) 個人的には好き http://www.flickr.com/photos/andybons/
  18. 18. ? Google Cloud Endpoints クライアント 自動生成ライブラリ Android Cloud Endpointsと 触ったことが無い( ー`дー´)キリッ https://www.flickr.com/photos/etnyk/
  19. 19. ? Google Cloud Endpoints クライアント 自動生成ライブラリ iPhone 持ってない( ー`дー´)キリッ https://www.flickr.com/photos/reticulating/
  20. 20. ? Google Cloud Endpoints クライアント 自動生成ライブラリ No Image JavaScript 自動生成できる、 Google API client for JavaScript経由で 利用時に作成されたものが使える 感じ?
  21. 21. ? Google Cloud Endpoints クライアント 自動生成ライブラリ Dart ココに来てやっと( ー`дー´)キリッ ただGoogleが サポートしているわけではなく サードパーティ製
  22. 22. T Google Cloud Endpoints
  23. 23. T Google Cloud Endpoints
  24. 24. T Google Cloud Endpoints Third party Third party
  25. 25. T Google Cloud Endpoints サーバサイド 環境 • Appengine Go SDK • MacユーザはbrewからでもOK $ brew install go-app-engine-64
  26. 26. Google Cloud Endpoints T サーバサイド ライブラリインストール • go-endpointsを使います $ go get github.com/crhym3/goendpoints/endpoints ※インストール時にエラーが出ますが気にしないでください。
  27. 27. T Google Cloud Endpoints サーバサイド 通信用構造体(struct)を作成 • go-endpointsが自動で JSON←→Struct変換してくれます。
  28. 28. T Google Cloud Endpoints サーバサイド 通信用構造体(struct)を作成
  29. 29. T Google Cloud Endpoints サーバサイド サービス(実処理)を作成 • go-endpointsが変換したstructを 引数に渡してくれます。
  30. 30. T Google Cloud Endpoints サーバサイド サービス(実処理)を作成
  31. 31. T Google Cloud Endpoints サーバサイド サービスを登録 • サービスをgo-endpontsに登録
  32. 32. T Google Cloud Endpoints サーバサイド サービスを登録
  33. 33. 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
  34. 34. T Google Cloud Endpoints サーバサイド 起動 • appengine go SDK経由 $ goapp serve
  35. 35. T Google Cloud Endpoints サーバサイド テスト • http://localhost:8080/_ah/api/explor er とかに行けば試せる
  36. 36. T Google Cloud Endpoints テスト サーバサイド
  37. 37. T Google Cloud Endpoints サーバサイド リリース • goapp deployでリリース $ goapp deploy
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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;
  42. 42. T Google Cloud Endpoints 使い方 呼び出し • {API名}_client側にある{API名}のイ ンスタンスを作成し、呼び出し greetingLib.Greeting greeting = new greetingLib.Greeting(); greeting.greets.list().then( (greetingClient.GreetingsList value)=> print(value) );
  43. 43. T Google Cloud Endpoints
  44. 44. T Google Cloud Endpoints 使い所? 使いドコロ • • コンソールアプリケーション Chrome Extension/App • Chrome Appならcordovaとか経由 でAndroid/iPhoneでも使えるか も? • 割りと大規模なプロジェクト?
  45. 45. Appendix 元GWTTERから見た Dart
  46. 46. お願い アンケートにご協力 http://goo.gl/98QcPN を!

×