2011-08-13 6 views
10

RESTを使用してクライアントサイド製品を構築しています。すべてのユーザーのやりとりはブラウザで行われます(設定はlocalhost上で動作するサーバー上にあります)。アプリケーションがクライアントのマシン上でlocalhostで実行されていても、すべてがRESTに準拠していて、外部からはアクセスできないようにしたいと思います。REST:サーバーにバックグラウンドプロセスを実行するように指示する方法

コマンドは非常に単純です:

  • 更新
  • 再起動
  • 同期

は、ここで私が作ってみたものです:

  • POST /とに詳細なアクションパラメータ(JSON)
  • PUT
    • 、後続のGET要求は、コマンドが完了したとき
    • 、リソースを実装する最もRESTfulな方法だろう何

を削除した状態を返します新しいリソースこの?

注:

私は私のソフトウェアアーキテクチャの精査を求めていませんよ。私は、Unixドメインソケット、CLIインターフェイス、または通常のGUIインターフェイスではなく、RESTインターフェイスを選択する理由があります。正当化は、質問を過度に複雑化し、それをあまりにも局在化させるでしょう。

私は、2つの異なるプロジェクト(クライアントとサーバーの両方)で同じ必要性を持ち、ベストプラクティスのコミュニティ入力を探しています。

+0

「クライアント専用アプリケーション」とはどういう意味ですか?単一ページの[RIA](http://en.wikipedia.org/wiki/Rich_Internet_application)を意味しますか? –

+0

私の言うことは、アプリケーションがローカルホスト上のクライアントマシン上でのみ実行されるということです。ユーザーだけがアクセスできます。これは決して開かれたポートでセットアップされません。それを反映する質問を編集する。 – tjameson

+0

これはデスクトップアプリケーションでなければなりません – Mrchief

答えて

8

プロセスを開始するために必要な適切なパラメータを使用して/ processリソースにPOSTすると、実際にプロセスの状態(/ process/123)を表すリソースにLocationヘッダーが返されます。そのプロセスについてGETを使用して、最新の情報を取得することができます。

これを実行すると、クライアントはプロセスが正常に終了したかどうかを知ることができないため、プロセスが自動的に削除されません。

注目すると、クライアントはリソースが完了した時点で確実に削除することができます。または、それに関心のある人が誰もいなくなったときに、後でそのリソースを削除できます。

+0

これはかなり妥当と聞こえます。私が受け入れる前にちょっと待つつもりですが、これは間違いなく役に立ちます。 – tjameson

関連する問題