2016-08-23 10 views
0

私は自分のデータベースにいくつかの要素を作成するRESTサービスを持っています。これらの要素はサーバーメソッドで "静的"に作成され、クライアントからは与えられませんが、操作の完了後にクライアントに返されます。オブジェクト、GET、POSTまたはPUTを送信せずにRESTサービス?

PUT/POST(新しいものを作成したいので)クライアントはオブジェクトを送信する必要があります。オブジェクトには送信するオブジェクトがないため、ヌルにする必要がありますサーバーで)。

私はをGET としてそれを宣言すると、私はそうGETメソッドから

を期待しない、私はヌル・オブジェクトを送信する必要はありませんが、私のGETメソッドは、物事を作成しますそのような場合には、PUT、POSTまたはGETに従うのに最適な方法は何でしょうか?

+0

などデシベルからプルとJSON/XML /プレーンテキストに変換することができるあなただけの唯一のクライアントの呼び出しでこれらの要素の作成をトリガしたいですか?どのような要求がなされる前に要素を最初に作成し、GETメソッドをクライアントに公開して返すことができますか? – Naveen

+0

リソースを何回も呼び出すとどうなりますか?すべての呼び出しでオブジェクトが作成されるか(副作用)、オブジェクトは一度しか作成されないのでしょうか?プライマーの場合、それらの冪等のセマンティクスのために 'PUT'または' GET'を使うことはできません。後者のケースでは、@ NaveenAechanプロポーザル –

+0

@NaveenAechanの方が私のケースではうまくいく可能性があり、複数の作成のようないくつかの問題を避けることができるとRoman Vottner氏は指摘しています。私はそれを試してみましょう。とにかく私が質問で説明したアプローチのためにGET、POSTまたはPUTを使用すべきかどうかを知りたいのです – iberbeu

答えて

1

これは私がこれが行われることを期待していた方法です。

  1. 使用のServletContextListenerとあなたのロジックを呼び出す初期化されたコンテキストに。 Refer this link
  2. ユーザーがURL http://yoururl/get/created/stuffを公開し、以前に作成した要素を返します。

いくつかのよりreferences

1

POST without payloadあなたのアプローチに多分応えます。

+0

ペイロードを持たないPOSTは仕様通り(ペイロード付きのGETと同じように)可能ですが、多くのプロキシやWebサーバでは問題があります。互換性を目指す場合は、少なくとも無視されるコンテンツを許可することをお勧めします。 – Tomas

関連する問題