0

残りの世界で@PUTを使用するためのベストプラクティスは何でしょうか。簡単な方法があります

@PUT
@Path("/")
public boolean putShotComponentNote(String note) {
    System.out.println(note);
    return true;
}

そして、シンプルなRESTクライアントやRESTコンソールのようなChromeのプラグインを使用してこのメ​​ソッドにアクセスしようとすると、URLを指定し、データセグメントにキーと値のペアを配置します

note=This is some note

私の方法では、キーと値の両方を取得します。理想的には、 http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Web_Platform/5/html-single/RESTEasy_Reference_Guideのいくつかの例で見られるように、変数の名前に基づいて値を取得したいだけです。/index.html

@PUT
@Path("array")
@Consumes("application/xml")
public void putCustomers(Customer[] customers)
{
  Assert.assertEquals("bill", customers[0].getName());
  Assert.assertEquals("monica", customers[1].getName());
}

それで、誰かが私を正しい方向に向けることができますか?

皆さんありがとう

これが難しい可能性はありますか?

これは送信されるリクエストです

 Request Url:       
 http://localhost:8080/rest/
 Request Method: PUT
 Status Code: 415
 Params: {
     "note": "asd"
 }

では、notesパラメータにアクセスするにはどうすればよいですか?@PathParamは機能せず、@ QueryParamも機能せず、(上記のように)単純な文字列はnote = asdを取得しないため、これは避けたいと思います。

だからこれは可能ですか

4

1 に答える 1

0

パラメーターがどのように送信されるかによって異なります。データは @QueryParam によって検出されないため、データがフォーム内にある可能性があります。

@FormParam を試してみてください: http://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html_single/index.html#_FormParam

最近、JQuery の ajax 関数を介して PUT リクエストを送信しているときに、これに遭遇しました。REST サービスを呼び出す方法は次のとおりです。

$.ajax({
    type:"PUT",
    url:"/rest/",
    data:{  "var1": "val1",
            "var2" : "val2"}
});

パラメータの文字列値を取得するだけの場合、RESTEasy には java.util.list オブジェクトを介して簡単に取得する方法があります。例として URL エンコーディングを使用しましたが、これは他のものにも適用できます。

@PUT
@Consumes("application/x-www-form-urlencoded")
public void Method1(@FormParam("var1") List<String> list1,
                    @FormParam("var2") List<String> list2){
    String v1 = list1.get(0);
    String v2 = list1.get(0);

    System.out.println(v1);
    System.out.println(v2);
}

出力:

val1
val2
于 2012-08-22T21:09:45.710 に答える