3

私は安らかなウェブアプリを開発しています。これで私が取るパラメータはuseridとorderidです。

するuseridことができますnull
URIは@Path("api/user/userid/order/orderid") 私の方法は、

void add(@PathParam("userid") String userId, @PathParam("orderid") String orderId);

userIdURI にnull 値を渡したい。

やってみapi/user//order/1234ました。しかし、この場合、は(つまり 1234useridの値を取り、は. (これは間違っています)orderIdorderIdnull

パスも変更してみました@Path("api/user/userid: .*/order/orderid")。それでも前回と同じ結果。

これを解決する他の方法は、 for を使用@QueryParamするuseridか、 for の別のメソッドを作成することですuserid null

しかし、代わりにuserIdasを持ち、 asの値を渡す方法があるかどうか知りたいですか?PathParameterQueryParamuseridnull

4

1 に答える 1

7

URL パラメーターを null にすることは有効なケースではありません。

URL への POST は、api/user/userid/order/orderid「このユーザーの注文を作成してください」と言っています。その同じ URL に GET することは、「このユーザーのこの特定の注文を取得してください」と言うことになります。どちらもユーザーのコンテキストにあります。

ユーザーのコンテキスト外で注文の作成または取得を行うには、URL のこれら 2 つの部分を削除するだけです...

api/order/orderid

これにより、顧客の範囲外で注文を作成および取得できます。これは、ユーザーのコンテキストでも機能します。ユーザー ID なしで注文を POST しても、誰も気にしませんが、ユーザー ID を指定できます。また、注文を GET する場合、orderID が顧客間で一意でない限り、それがどの顧客向けであるかを気にする必要はありませんが、それはおそらく良い考えではありませんが、それは別の議論です。

于 2012-06-29T19:17:18.070 に答える