Restlet 2.0でリクエスト属性を取得します
-
13-09-2020 - |
質問
Restlet を使用しています。私は以前にそれを使っていませんが、私は2.0を使うことにしましたが、最新かつ最大のテクノロジーから始めるのが良いですね。
私が探している重要なことは、http://mysite/New%20York/3
のようなURLを置く能力であり、サービスに[New York,New York,New York]
のようなもので応答することができるので、要求属性に渡す必要があります。 Restlet 1.1 ( Restletサイトでは、 のドキュメントを見つけることができないように思われるので、私はそのような私のアプリケーションを配線しました。
router.attach("{text}/{count}", RepeaterResource.class);
.
これを行うための新しい方法は明らかにUniformResource#doInit()
メソッドであるので、私のものは(エラーチェックなし):
@Override
public void doInit()
{
magicText = "" + getRequestAttributes().get("text");
repeatAmount = Integer.parseInt("" + getRequestAttributes().get("count"));
}
.
問題は、Map<String, Object>
から返されたgetRequestAttributes()
が常に完全に空です。これはかなり奇妙なようです。私はルーティングを間違って配線していますか?
もちろん、私はgetQuery()
を使って自分自身を解析することができましたが、それは間違いなくこれを行うことに行くための間違った方法で、これをやる方法があるようです(以前のバージョンが働いた方法と同様) 。
解決
私の問題は、ルータの添付ファイルが/
文字で始める必要があるということです。私はそのようなように添付されるべきです:
router.attach("/{text}/{count}", RepeaterResource.class);
.
この現象を文書化されていると思われることはできず、それはかなり奇妙なようですが、確かに私の問題を修正しました。
他のヒント
1.0と同じ方法でこれを行うことができます。
チュートリアル、第11章: http://www.restlet.org/ドキュメント/ 2.0 /チュートリアル#Part11
復元は素晴らしい、BTWです。