Поместите аннотацию и передовую практику Resteasy

Как лучше всего работать с @PUT в остальном мире. у меня простой способ

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

И когда я пытаюсь получить доступ к этому методу с помощью плагина для Chrome, такого как Simple REST Client или REST Console, где я указываю 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"
 }

Итак, как мне получить доступ к параметру заметок? @PathParam не будет работать, равно как и @QueryParam, и просто String not (как написано выше) не даст мне note=asd, и я хотел бы избежать этого.

Так это возможно


person Boris Horvat    schedule 06.08.2012    source источник


Ответы (1)


Это зависит от того, как передаются ваши параметры. Поскольку ваши данные не обнаруживаются @QueryParam, ваши данные могут находиться внутри формы.

Попробуйте @FormParam: http://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html_single/index.html#_FormParam

Недавно я столкнулся с этим при отправке запроса PUT через функцию ajax JQuery. Вот как вы можете вызвать службу 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
person qdev76    schedule 22.08.2012