web-dev-qa-db-ja.com

AppEngineのRESTFulサービスフレームワーク

私は、GoogleのAppEngine PAASを使用したモバイルクライアントとウェブクライアントを含むプロジェクトに取り組んでいます。 AppEngineアプリでRESTFul Webサービスを使用したいと思います。

Stackoverflowを調べて、Web(GWT)クライアントとモバイル(Android)クライアントの両方のAppEngineで使用できるRESTFulサービスフレームワークを参照しました。 RestletはAppEngine、GWT、Android向けのエディションを提供しているようですが、これまでのところ、ほとんどの場合 question が原因でRestEasyになっています。

以前は ディスカッションRESTFulフレームワーク という質問がありましたが、比較がこれによく当てはまるとは思いません。この一連のプラットフォームで利用可能なフレームワークに関する経験豊富な開発者の見解と、それぞれのメリットとデメリットの比較を聞くことは役に立ちます。

27
Saad Farooq

アプリのTrusted Tester機能として発表されたGoogle Cloud Endpointsの使用を検討してくださいGoogle I/Oのエンジンで、誰でも利用できるようになりました。 Endpointsでは、APIを説明するために、単純なJava(またはPython)クラスとメソッドに注釈を付けます。たとえば、これはTic Tac Toeゲームからハイスコアのリストを取得および取得するための単純なクラスです。

@Api(name = "tictactoe")
public class ScoreEndpoint {
  @ApiMethod(name = "scores.get")
  public Score get(@Named("id") String id) {
    PersistenceManager pm = getPersistenceManager();
    Score score = pm.getObjectById(Score.class, id);
    pm.close();
    return score;
  }

  @ApiMethod(name = "scores.list")
  public List<Score> list() {
    PersistenceManager pm = getPersistenceManager();
    Query query = pm.newQuery(Score.class);
    return (List<Score>) pm.newQuery(query).execute();
  }
}

特徴

  • JavaおよびPythonランタイムのサポート
  • GoogleのAPIインフラストラクチャ上に構築されています- など、Google独自のAPIに使用されているものと同じツールとライブラリの多くで動作しますAPI Explorer および APIs Console
  • AndroidおよびiOS用の自動生成され、静的に型指定されたクライアントライブラリ-これらのライブラリは同じGoogleが作成したものを使用しています Java および Objective-C ライブラリを使用して、Calendar APIなどの他のGoogle提供のAPIにアクセスします
  • 動的に型付けされたJSクライアントライブラリ-繰り返しますが、JSで他のGoogle提供のAPIへのアクセスに使用するのと同じライブラリ
  • OAuth 2のサポートが組み込まれています
  • Eclipse for Google Pluginとの統合-これにより、モデルに基づいてAPIを自動的に作成したり、既存のAndroidアプリ
  • ローカル開発のサポート-他のApp Engine機能と同様に、App Engine開発環境を使用してAPIを構築およびテストできます

もっと詳しく知る

エンドポイントの使用の詳細については、 ドキュメント をご覧ください。

また、Google I/Oからいくつかの講演を見ることができます。

36
Dan Holevoet

Restletを使用しないというあなたの決定を尊重しますが、このスレッドの他のブラウザーでは、Android/Restlet/GAEでPostを動作させることができました。私の知識とプログラミングスキルはかなり限られています。 JavaScriptのRestlet Editionが正しく動作するようにするにはいくつか問題がありましたが(まだ開発の初期段階です)、AndroidのRestletは問題を引き起こしませんでした。

2
Richard Berger

私はGAEで幸運の春休みサービスを使用しており、Android Native、PhonegapおよびIOSクライアントはまったく問題なく)で消費しています。

http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/

2
DavidB

Restletもお勧めします。他のスレッドもここで参照してください。

RestletにはGAE用のエディションがあります http://wiki.restlet.org/docs_2.0/13-restlet/275-restlet/252-restlet.html を参照してください

ただし、GAEの特別エディションが付属する他のライブラリもあります。例: http://code.google.com/p/xydra/wiki/RestLess

1
ChrLipp

GAEを検討している場合、検討すべき1つの選択肢は duyproject です。これはopenidライブラリであることがわかっていますが、RESTサーブレット用の非常に軽量なライブラリも備えています。GAEでは、すべてのライブラリを軽量に保ち、バイトを超えないようにします。制限。

0
Deanna