1

サーバー リソースは、クライアント側からの「削除」操作のために、後述の remove() の呼び出しを正しく受け取ります。

@DELETE @Path("{id}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public void remove(@PathParam("id") int id) {
        dao.remove(id);
}

ここでは、パスから「id」パラメーターも正しく取得して、「id」を含むレコードをデータベースから削除します。

私の質問は、レコードを削除する前に入力したパスワードを検証するために、同じ「パス」から別のパラメーター、たとえば「パスワード」を取得したい場合、それを行う方法はありますか?

あなたの提案を教えてください。

4

2 に答える 2

0

代わりにこれを試してください:

@DELETE
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public void remove(@QueryParam(value = "id") int id, @QueryParam(value = "pw") String pw)     {
  .....
}

リソースは、url/url?id=1&pw=PASSWORD のようにクエスチョン マークでリクエストする必要があります。しかし、URL を介してパスワードを送信するのはあまり節約できません。

于 2013-03-13T11:43:42.243 に答える
0

技術的には、アノテーションの URI テンプレートに複数のパラメーターを含めることができる@Pathため、次のようにすることができます。

@Path("{id}/{password}")
@DELETE @Path("{id}")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public void remove(@PathParam("id") int id, @PathParam("password") String pwd) {
        // ...
}

ただし、これが削除要求を承認する正しいアプローチであるかどうかは別の問題です。

于 2013-03-12T12:57:02.193 に答える