忍者ブログ

Ryoの技術メモ

仕事の中で気が付いたことを書き綴ります。

ブログ整理中のため古い記事を隠しています。整形して徐々に戻していきます。

<< | 2024/11 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | >>

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

16.appengine ja night #22 Google Cloud EndPoints




※追記:正式リリースされたので新しいブログに使い方を説明する記事を書きました。
http://blog.vier.jp/2013/02/google-cloud-endpoints-12.html

いつも会社のブログで書いてる内容と少し色が違うので、珍しく個人ブログに書いてみる。

参考:Google Cloud Endpoints for Trusted Testers


新しい知識としてはCloud EndPointsが興味深かった。
Cloud EndPointsでクライアントとサーバーサイドの連携を簡単にすることができる。

手順としてはこう。
1.バックエンド(ビジネスロジック)のコードを書く
2.APIで公開したいメソッドにアノテーションを付ける
3.eclipse-pluginからクライアント用のライブラリを生成する
4.クライアントは生成されたライブラリのメソッドを呼ぶ


1.バックエンド(ビジネスロジック)のコードを書く
2.APIで公開したいメソッドにアノテーションを付ける

サーバー側でビジネスロジックのメソッドを作成して、
アノテーションを付ければ、それだけAPIとして公開できる。
こんな感じ↓
@Api(name = "hoge")
public class GameService{

@ApiMethod(name = "game.get")
public Game getGame(String gameId){
Key gameKey = Datastore.createKey(Game.class,gameId);
return Datastore.getOrNullWithoutTx(Game.class,gameKey);
}
}



3.eclipse-pluginからクライアント用のライブラリを生成する

このコードを元にeclipse Pluginでクライアント側のコードを自動生成できる。
(自動生成できるのは「Android」・「iOS」・「JavaScript」向けのクライアント側コード)



4.クライアントは生成されたライブラリのメソッドを呼ぶ

クライアント側はWebをそれほど意識しなくても、
Javaのメソッドを呼び出せばサーバーサイドの処理を実行したり結果を取得する事ができる。

サーバーサイドを記述する言語でサポートしているのはJavaとPython。



○所感

この手の「クライアント側のコードを自動生成して通信を隠蔽する仕組み」としては昔からSOAPなんかがあるけど、
Googleアカウントを使ったOAuth認証を含んでるところがさらに便利なところ。
きっとGoogleアカウントのIDやユーザー名を取得できるメソッドなんかも用意されてるんでしょうね。

twitterにも書いたけど、自分の周りのエンジニアを見回すと、
Webに不慣れなクライアントアプリのエンジニア、特にAndroidエンジニアにとってCloud EndPointsは良いと思う。
(その彼も今はWebの実装に慣れてきたけど)

「Androidアプリは作れるけど、Webの知識がほとんど無い。そのために自前のサーバーと連携するアプリを作れない。」
という人でも、
・AndroidエンジニアならJavaの構文を知っている。
・サーバーサイドの処理としてJavaのビジネスロジックを作ればいいだけなら学習コストが低い。
・「サーバーサイドのJsonを返す処理」と「クライアントサイドのJsonをParseする処理」を書かなくて良いので実装量も減る。
・OAuthでサポートしているのはGoogleアカウントのみだけど、それもAndroidなら普通は登録されている。

そのため、個人的にはAndroidアプリエンジニアに一番推しやすいと思った。

処理内容によってはビジネスロジックを実装するためにDatastoreの知識があるといいけど、
今はCloud SQLもあるからRDBが良ければそれでもいい。容量も100GBになって安心感出たしね。

あと気になるのはお値段かなぁ。
PR
ブログ内検索
最新コメント
[12/08 Ryo]
[12/07 名無しさん]
[07/19 Ryo]
[07/19 まぁくん]
[07/18 Ryo]
QRコード

AdminControlMenu: AdminMenu | NewEntry | EditComment | EditTrackback

忍者ブログ [PR]